@n1k1t/mock-server 0.1.32 → 0.1.34

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 (51) hide show
  1. package/.nvmrc +1 -0
  2. package/lib/package.json +5 -3
  3. package/lib/src/server/endpoints/history.get-list.endpoint.d.ts +2 -2
  4. package/lib/src/server/endpoints/history.get-list.endpoint.js +1 -1
  5. package/lib/src/server/endpoints/history.get-list.endpoint.js.map +1 -1
  6. package/lib/src/server/models/context/index.d.ts.map +1 -0
  7. package/lib/src/server/models/{request-context → context}/index.js +1 -0
  8. package/lib/src/server/models/context/index.js.map +1 -0
  9. package/lib/src/server/models/context/snapshot.d.ts.map +1 -0
  10. package/lib/src/server/models/context/snapshot.js.map +1 -0
  11. package/lib/src/server/models/context/types.d.ts.map +1 -0
  12. package/lib/src/server/models/context/types.js.map +1 -0
  13. package/lib/src/server/models/context/utils.d.ts.map +1 -0
  14. package/lib/src/server/models/context/utils.js.map +1 -0
  15. package/lib/src/server/models/executor/errors/index.d.ts +1 -1
  16. package/lib/src/server/models/executor/errors/index.d.ts.map +1 -1
  17. package/lib/src/server/models/executor/index.d.ts +1 -1
  18. package/lib/src/server/models/executor/index.d.ts.map +1 -1
  19. package/lib/src/server/models/executor/index.js +8 -8
  20. package/lib/src/server/models/executor/index.js.map +1 -1
  21. package/lib/src/server/models/history/model.d.ts +6 -6
  22. package/lib/src/server/models/history/model.d.ts.map +1 -1
  23. package/lib/src/server/models/history/model.js +13 -15
  24. package/lib/src/server/models/history/model.js.map +1 -1
  25. package/lib/src/server/models/index.d.ts +1 -1
  26. package/lib/src/server/models/index.d.ts.map +1 -1
  27. package/lib/src/server/models/index.js +1 -1
  28. package/lib/src/server/models/index.js.map +1 -1
  29. package/lib/src/server/models/reply.d.ts +1 -1
  30. package/lib/src/server/models/reply.d.ts.map +1 -1
  31. package/lib/src/server/transports/http/executor.d.ts +1 -1
  32. package/lib/tsconfig.tsbuildinfo +1 -1
  33. package/package.json +5 -3
  34. package/public/index.html +0 -23
  35. package/public/scripts/main.js +1372 -640
  36. package/public/styles/main.css +476 -384
  37. package/lib/src/server/models/request-context/index.d.ts.map +0 -1
  38. package/lib/src/server/models/request-context/index.js.map +0 -1
  39. package/lib/src/server/models/request-context/snapshot.d.ts.map +0 -1
  40. package/lib/src/server/models/request-context/snapshot.js.map +0 -1
  41. package/lib/src/server/models/request-context/types.d.ts.map +0 -1
  42. package/lib/src/server/models/request-context/types.js.map +0 -1
  43. package/lib/src/server/models/request-context/utils.d.ts.map +0 -1
  44. package/lib/src/server/models/request-context/utils.js.map +0 -1
  45. /package/lib/src/server/models/{request-context → context}/index.d.ts +0 -0
  46. /package/lib/src/server/models/{request-context → context}/snapshot.d.ts +0 -0
  47. /package/lib/src/server/models/{request-context → context}/snapshot.js +0 -0
  48. /package/lib/src/server/models/{request-context → context}/types.d.ts +0 -0
  49. /package/lib/src/server/models/{request-context → context}/types.js +0 -0
  50. /package/lib/src/server/models/{request-context → context}/utils.d.ts +0 -0
  51. /package/lib/src/server/models/{request-context → context}/utils.js +0 -0
@@ -2490,7 +2490,7 @@ function numberIsNaN (obj) {
2490
2490
  }
2491
2491
 
2492
2492
  }).call(this)}).call(this,require("buffer").Buffer)
2493
- },{"base64-js":3,"buffer":5,"ieee754":72}],6:[function(require,module,exports){
2493
+ },{"base64-js":3,"buffer":5,"ieee754":73}],6:[function(require,module,exports){
2494
2494
  (function (process){(function (){
2495
2495
  /* eslint-env browser */
2496
2496
 
@@ -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":239}],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":238}],8:[function(require,module,exports){
3043
3043
  "use strict";
3044
3044
  Object.defineProperty(exports, "__esModule", { value: true });
3045
3045
  exports.hasCORS = void 0;
@@ -5438,6 +5438,36 @@ function eventTargetAgnosticAddListener(emitter, name, listener, flags) {
5438
5438
  }
5439
5439
 
5440
5440
  },{}],28:[function(require,module,exports){
5441
+ "use strict";
5442
+ Object.defineProperty(exports, "__esModule", { value: true });
5443
+ /**
5444
+ * FNV-1a hash generation init value.
5445
+ * It's exposed, because this allows user to override it.
5446
+ * More info: https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function#FNV_hash_parameters
5447
+ *
5448
+ * @type {number}
5449
+ */
5450
+ hash.BASE = 0x811c9dc5;
5451
+ /**
5452
+ * Generates 32 bit FNV-1a hash from the given string.
5453
+ * As explained here: http://isthe.com/chongo/tech/comp/fnv/
5454
+ *
5455
+ * @param s {string} String to generate hash from.
5456
+ * @param [h] {number} FNV-1a hash generation init value.
5457
+ * @returns {number} The result integer hash.
5458
+ */
5459
+ function hash(s, h = hash.BASE) {
5460
+ const l = s.length;
5461
+ for (let i = 0; i < l; i++) {
5462
+ h ^= s.charCodeAt(i);
5463
+ h += (h << 1) + (h << 4) + (h << 7) + (h << 8) + (h << 24);
5464
+ }
5465
+ return h >>> 0;
5466
+ }
5467
+ exports.default = hash;
5468
+ module.exports = hash;
5469
+
5470
+ },{}],29:[function(require,module,exports){
5441
5471
  'use strict';
5442
5472
 
5443
5473
  exports.__esModule = true;
@@ -5505,7 +5535,7 @@ exports['default'] = inst;
5505
5535
  module.exports = exports['default'];
5506
5536
 
5507
5537
 
5508
- },{"./handlebars.runtime":29,"./handlebars/compiler/ast":31,"./handlebars/compiler/base":32,"./handlebars/compiler/compiler":34,"./handlebars/compiler/javascript-compiler":36,"./handlebars/compiler/visitor":39,"./handlebars/no-conflict":56}],29:[function(require,module,exports){
5538
+ },{"./handlebars.runtime":30,"./handlebars/compiler/ast":32,"./handlebars/compiler/base":33,"./handlebars/compiler/compiler":35,"./handlebars/compiler/javascript-compiler":37,"./handlebars/compiler/visitor":40,"./handlebars/no-conflict":57}],30:[function(require,module,exports){
5509
5539
  'use strict';
5510
5540
 
5511
5541
  exports.__esModule = true;
@@ -5573,7 +5603,7 @@ exports['default'] = inst;
5573
5603
  module.exports = exports['default'];
5574
5604
 
5575
5605
 
5576
- },{"./handlebars/base":30,"./handlebars/exception":43,"./handlebars/no-conflict":56,"./handlebars/runtime":57,"./handlebars/safe-string":58,"./handlebars/utils":59}],30:[function(require,module,exports){
5606
+ },{"./handlebars/base":31,"./handlebars/exception":44,"./handlebars/no-conflict":57,"./handlebars/runtime":58,"./handlebars/safe-string":59,"./handlebars/utils":60}],31:[function(require,module,exports){
5577
5607
  'use strict';
5578
5608
 
5579
5609
  exports.__esModule = true;
@@ -5691,7 +5721,7 @@ exports.createFrame = _utils.createFrame;
5691
5721
  exports.logger = _logger2['default'];
5692
5722
 
5693
5723
 
5694
- },{"./decorators":41,"./exception":43,"./helpers":44,"./internal/proto-access":53,"./logger":55,"./utils":59}],31:[function(require,module,exports){
5724
+ },{"./decorators":42,"./exception":44,"./helpers":45,"./internal/proto-access":54,"./logger":56,"./utils":60}],32:[function(require,module,exports){
5695
5725
  'use strict';
5696
5726
 
5697
5727
  exports.__esModule = true;
@@ -5724,7 +5754,7 @@ exports['default'] = AST;
5724
5754
  module.exports = exports['default'];
5725
5755
 
5726
5756
 
5727
- },{}],32:[function(require,module,exports){
5757
+ },{}],33:[function(require,module,exports){
5728
5758
  'use strict';
5729
5759
 
5730
5760
  exports.__esModule = true;
@@ -5783,7 +5813,7 @@ function parse(input, options) {
5783
5813
  }
5784
5814
 
5785
5815
 
5786
- },{"../utils":59,"./helpers":35,"./parser":37,"./whitespace-control":40}],33:[function(require,module,exports){
5816
+ },{"../utils":60,"./helpers":36,"./parser":38,"./whitespace-control":41}],34:[function(require,module,exports){
5787
5817
  /* global define */
5788
5818
  'use strict';
5789
5819
 
@@ -5953,7 +5983,7 @@ exports['default'] = CodeGen;
5953
5983
  module.exports = exports['default'];
5954
5984
 
5955
5985
 
5956
- },{"../utils":59,"source-map":71}],34:[function(require,module,exports){
5986
+ },{"../utils":60,"source-map":72}],35:[function(require,module,exports){
5957
5987
  /* eslint-disable new-cap */
5958
5988
 
5959
5989
  'use strict';
@@ -6521,7 +6551,7 @@ function transformLiteralToPath(sexpr) {
6521
6551
  }
6522
6552
 
6523
6553
 
6524
- },{"../exception":43,"../utils":59,"./ast":31}],35:[function(require,module,exports){
6554
+ },{"../exception":44,"../utils":60,"./ast":32}],36:[function(require,module,exports){
6525
6555
  'use strict';
6526
6556
 
6527
6557
  exports.__esModule = true;
@@ -6751,7 +6781,7 @@ function preparePartialBlock(open, program, close, locInfo) {
6751
6781
  }
6752
6782
 
6753
6783
 
6754
- },{"../exception":43}],36:[function(require,module,exports){
6784
+ },{"../exception":44}],37:[function(require,module,exports){
6755
6785
  'use strict';
6756
6786
 
6757
6787
  exports.__esModule = true;
@@ -7912,7 +7942,7 @@ exports['default'] = JavaScriptCompiler;
7912
7942
  module.exports = exports['default'];
7913
7943
 
7914
7944
 
7915
- },{"../base":30,"../exception":43,"../utils":59,"./code-gen":33}],37:[function(require,module,exports){
7945
+ },{"../base":31,"../exception":44,"../utils":60,"./code-gen":34}],38:[function(require,module,exports){
7916
7946
  // File ignored in coverage tests via setting in .istanbul.yml
7917
7947
  /* Jison generated parser */
7918
7948
  "use strict";
@@ -8651,7 +8681,7 @@ var handlebars = (function () {
8651
8681
  module.exports = exports["default"];
8652
8682
 
8653
8683
 
8654
- },{}],38:[function(require,module,exports){
8684
+ },{}],39:[function(require,module,exports){
8655
8685
  /* eslint-disable new-cap */
8656
8686
  'use strict';
8657
8687
 
@@ -8839,7 +8869,7 @@ PrintVisitor.prototype.HashPair = function (pair) {
8839
8869
  /* eslint-enable new-cap */
8840
8870
 
8841
8871
 
8842
- },{"./visitor":39}],39:[function(require,module,exports){
8872
+ },{"./visitor":40}],40:[function(require,module,exports){
8843
8873
  'use strict';
8844
8874
 
8845
8875
  exports.__esModule = true;
@@ -8981,7 +9011,7 @@ exports['default'] = Visitor;
8981
9011
  module.exports = exports['default'];
8982
9012
 
8983
9013
 
8984
- },{"../exception":43}],40:[function(require,module,exports){
9014
+ },{"../exception":44}],41:[function(require,module,exports){
8985
9015
  'use strict';
8986
9016
 
8987
9017
  exports.__esModule = true;
@@ -9204,7 +9234,7 @@ exports['default'] = WhitespaceControl;
9204
9234
  module.exports = exports['default'];
9205
9235
 
9206
9236
 
9207
- },{"./visitor":39}],41:[function(require,module,exports){
9237
+ },{"./visitor":40}],42:[function(require,module,exports){
9208
9238
  'use strict';
9209
9239
 
9210
9240
  exports.__esModule = true;
@@ -9222,7 +9252,7 @@ function registerDefaultDecorators(instance) {
9222
9252
  }
9223
9253
 
9224
9254
 
9225
- },{"./decorators/inline":42}],42:[function(require,module,exports){
9255
+ },{"./decorators/inline":43}],43:[function(require,module,exports){
9226
9256
  'use strict';
9227
9257
 
9228
9258
  exports.__esModule = true;
@@ -9253,7 +9283,7 @@ exports['default'] = function (instance) {
9253
9283
  module.exports = exports['default'];
9254
9284
 
9255
9285
 
9256
- },{"../utils":59}],43:[function(require,module,exports){
9286
+ },{"../utils":60}],44:[function(require,module,exports){
9257
9287
  'use strict';
9258
9288
 
9259
9289
  exports.__esModule = true;
@@ -9319,7 +9349,7 @@ exports['default'] = Exception;
9319
9349
  module.exports = exports['default'];
9320
9350
 
9321
9351
 
9322
- },{}],44:[function(require,module,exports){
9352
+ },{}],45:[function(require,module,exports){
9323
9353
  'use strict';
9324
9354
 
9325
9355
  exports.__esModule = true;
@@ -9377,7 +9407,7 @@ function moveHelperToHooks(instance, helperName, keepHelper) {
9377
9407
  }
9378
9408
 
9379
9409
 
9380
- },{"./helpers/block-helper-missing":45,"./helpers/each":46,"./helpers/helper-missing":47,"./helpers/if":48,"./helpers/log":49,"./helpers/lookup":50,"./helpers/with":51}],45:[function(require,module,exports){
9410
+ },{"./helpers/block-helper-missing":46,"./helpers/each":47,"./helpers/helper-missing":48,"./helpers/if":49,"./helpers/log":50,"./helpers/lookup":51,"./helpers/with":52}],46:[function(require,module,exports){
9381
9411
  'use strict';
9382
9412
 
9383
9413
  exports.__esModule = true;
@@ -9418,7 +9448,7 @@ exports['default'] = function (instance) {
9418
9448
  module.exports = exports['default'];
9419
9449
 
9420
9450
 
9421
- },{"../utils":59}],46:[function(require,module,exports){
9451
+ },{"../utils":60}],47:[function(require,module,exports){
9422
9452
  (function (global){(function (){
9423
9453
  'use strict';
9424
9454
 
@@ -9526,7 +9556,7 @@ module.exports = exports['default'];
9526
9556
 
9527
9557
 
9528
9558
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
9529
- },{"../exception":43,"../utils":59}],47:[function(require,module,exports){
9559
+ },{"../exception":44,"../utils":60}],48:[function(require,module,exports){
9530
9560
  'use strict';
9531
9561
 
9532
9562
  exports.__esModule = true;
@@ -9553,7 +9583,7 @@ exports['default'] = function (instance) {
9553
9583
  module.exports = exports['default'];
9554
9584
 
9555
9585
 
9556
- },{"../exception":43}],48:[function(require,module,exports){
9586
+ },{"../exception":44}],49:[function(require,module,exports){
9557
9587
  'use strict';
9558
9588
 
9559
9589
  exports.__esModule = true;
@@ -9601,7 +9631,7 @@ exports['default'] = function (instance) {
9601
9631
  module.exports = exports['default'];
9602
9632
 
9603
9633
 
9604
- },{"../exception":43,"../utils":59}],49:[function(require,module,exports){
9634
+ },{"../exception":44,"../utils":60}],50:[function(require,module,exports){
9605
9635
  'use strict';
9606
9636
 
9607
9637
  exports.__esModule = true;
@@ -9629,7 +9659,7 @@ exports['default'] = function (instance) {
9629
9659
  module.exports = exports['default'];
9630
9660
 
9631
9661
 
9632
- },{}],50:[function(require,module,exports){
9662
+ },{}],51:[function(require,module,exports){
9633
9663
  'use strict';
9634
9664
 
9635
9665
  exports.__esModule = true;
@@ -9647,7 +9677,7 @@ exports['default'] = function (instance) {
9647
9677
  module.exports = exports['default'];
9648
9678
 
9649
9679
 
9650
- },{}],51:[function(require,module,exports){
9680
+ },{}],52:[function(require,module,exports){
9651
9681
  'use strict';
9652
9682
 
9653
9683
  exports.__esModule = true;
@@ -9692,7 +9722,7 @@ exports['default'] = function (instance) {
9692
9722
  module.exports = exports['default'];
9693
9723
 
9694
9724
 
9695
- },{"../exception":43,"../utils":59}],52:[function(require,module,exports){
9725
+ },{"../exception":44,"../utils":60}],53:[function(require,module,exports){
9696
9726
  'use strict';
9697
9727
 
9698
9728
  exports.__esModule = true;
@@ -9716,7 +9746,7 @@ function createNewLookupObject() {
9716
9746
  }
9717
9747
 
9718
9748
 
9719
- },{"../utils":59}],53:[function(require,module,exports){
9749
+ },{"../utils":60}],54:[function(require,module,exports){
9720
9750
  'use strict';
9721
9751
 
9722
9752
  exports.__esModule = true;
@@ -9791,7 +9821,7 @@ function resetLoggedProperties() {
9791
9821
  }
9792
9822
 
9793
9823
 
9794
- },{"../logger":55,"./create-new-lookup-object":52}],54:[function(require,module,exports){
9824
+ },{"../logger":56,"./create-new-lookup-object":53}],55:[function(require,module,exports){
9795
9825
  'use strict';
9796
9826
 
9797
9827
  exports.__esModule = true;
@@ -9812,7 +9842,7 @@ function wrapHelper(helper, transformOptionsFn) {
9812
9842
  }
9813
9843
 
9814
9844
 
9815
- },{}],55:[function(require,module,exports){
9845
+ },{}],56:[function(require,module,exports){
9816
9846
  'use strict';
9817
9847
 
9818
9848
  exports.__esModule = true;
@@ -9861,7 +9891,7 @@ exports['default'] = logger;
9861
9891
  module.exports = exports['default'];
9862
9892
 
9863
9893
 
9864
- },{"./utils":59}],56:[function(require,module,exports){
9894
+ },{"./utils":60}],57:[function(require,module,exports){
9865
9895
  (function (global){(function (){
9866
9896
  'use strict';
9867
9897
 
@@ -9884,7 +9914,7 @@ module.exports = exports['default'];
9884
9914
 
9885
9915
 
9886
9916
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
9887
- },{}],57:[function(require,module,exports){
9917
+ },{}],58:[function(require,module,exports){
9888
9918
  'use strict';
9889
9919
 
9890
9920
  exports.__esModule = true;
@@ -10258,7 +10288,7 @@ function passLookupPropertyOption(helper, container) {
10258
10288
  }
10259
10289
 
10260
10290
 
10261
- },{"./base":30,"./exception":43,"./helpers":44,"./internal/proto-access":53,"./internal/wrapHelper":54,"./utils":59}],58:[function(require,module,exports){
10291
+ },{"./base":31,"./exception":44,"./helpers":45,"./internal/proto-access":54,"./internal/wrapHelper":55,"./utils":60}],59:[function(require,module,exports){
10262
10292
  // Build out our basic SafeString type
10263
10293
  'use strict';
10264
10294
 
@@ -10275,7 +10305,7 @@ exports['default'] = SafeString;
10275
10305
  module.exports = exports['default'];
10276
10306
 
10277
10307
 
10278
- },{}],59:[function(require,module,exports){
10308
+ },{}],60:[function(require,module,exports){
10279
10309
  'use strict';
10280
10310
 
10281
10311
  exports.__esModule = true;
@@ -10401,7 +10431,7 @@ function appendContextPath(contextPath, id) {
10401
10431
  }
10402
10432
 
10403
10433
 
10404
- },{}],60:[function(require,module,exports){
10434
+ },{}],61:[function(require,module,exports){
10405
10435
  // USAGE:
10406
10436
  // var handlebars = require('handlebars');
10407
10437
  /* eslint-disable no-var */
@@ -10428,7 +10458,7 @@ if (typeof require !== 'undefined' && require.extensions) {
10428
10458
  require.extensions['.hbs'] = extension;
10429
10459
  }
10430
10460
 
10431
- },{"../dist/cjs/handlebars":28,"../dist/cjs/handlebars/compiler/printer":38,"fs":4}],61:[function(require,module,exports){
10461
+ },{"../dist/cjs/handlebars":29,"../dist/cjs/handlebars/compiler/printer":39,"fs":4}],62:[function(require,module,exports){
10432
10462
  /* -*- Mode: js; js-indent-level: 2; -*- */
10433
10463
  /*
10434
10464
  * Copyright 2011 Mozilla Foundation and contributors
@@ -10551,7 +10581,7 @@ ArraySet.prototype.toArray = function ArraySet_toArray() {
10551
10581
 
10552
10582
  exports.ArraySet = ArraySet;
10553
10583
 
10554
- },{"./util":70}],62:[function(require,module,exports){
10584
+ },{"./util":71}],63:[function(require,module,exports){
10555
10585
  /* -*- Mode: js; js-indent-level: 2; -*- */
10556
10586
  /*
10557
10587
  * Copyright 2011 Mozilla Foundation and contributors
@@ -10693,7 +10723,7 @@ exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {
10693
10723
  aOutParam.rest = aIndex;
10694
10724
  };
10695
10725
 
10696
- },{"./base64":63}],63:[function(require,module,exports){
10726
+ },{"./base64":64}],64:[function(require,module,exports){
10697
10727
  /* -*- Mode: js; js-indent-level: 2; -*- */
10698
10728
  /*
10699
10729
  * Copyright 2011 Mozilla Foundation and contributors
@@ -10762,7 +10792,7 @@ exports.decode = function (charCode) {
10762
10792
  return -1;
10763
10793
  };
10764
10794
 
10765
- },{}],64:[function(require,module,exports){
10795
+ },{}],65:[function(require,module,exports){
10766
10796
  /* -*- Mode: js; js-indent-level: 2; -*- */
10767
10797
  /*
10768
10798
  * Copyright 2011 Mozilla Foundation and contributors
@@ -10875,7 +10905,7 @@ exports.search = function search(aNeedle, aHaystack, aCompare, aBias) {
10875
10905
  return index;
10876
10906
  };
10877
10907
 
10878
- },{}],65:[function(require,module,exports){
10908
+ },{}],66:[function(require,module,exports){
10879
10909
  /* -*- Mode: js; js-indent-level: 2; -*- */
10880
10910
  /*
10881
10911
  * Copyright 2014 Mozilla Foundation and contributors
@@ -10956,7 +10986,7 @@ MappingList.prototype.toArray = function MappingList_toArray() {
10956
10986
 
10957
10987
  exports.MappingList = MappingList;
10958
10988
 
10959
- },{"./util":70}],66:[function(require,module,exports){
10989
+ },{"./util":71}],67:[function(require,module,exports){
10960
10990
  /* -*- Mode: js; js-indent-level: 2; -*- */
10961
10991
  /*
10962
10992
  * Copyright 2011 Mozilla Foundation and contributors
@@ -11072,7 +11102,7 @@ exports.quickSort = function (ary, comparator) {
11072
11102
  doQuickSort(ary, comparator, 0, ary.length - 1);
11073
11103
  };
11074
11104
 
11075
- },{}],67:[function(require,module,exports){
11105
+ },{}],68:[function(require,module,exports){
11076
11106
  /* -*- Mode: js; js-indent-level: 2; -*- */
11077
11107
  /*
11078
11108
  * Copyright 2011 Mozilla Foundation and contributors
@@ -12219,7 +12249,7 @@ IndexedSourceMapConsumer.prototype._parseMappings =
12219
12249
 
12220
12250
  exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;
12221
12251
 
12222
- },{"./array-set":61,"./base64-vlq":62,"./binary-search":64,"./quick-sort":66,"./util":70}],68:[function(require,module,exports){
12252
+ },{"./array-set":62,"./base64-vlq":63,"./binary-search":65,"./quick-sort":67,"./util":71}],69:[function(require,module,exports){
12223
12253
  /* -*- Mode: js; js-indent-level: 2; -*- */
12224
12254
  /*
12225
12255
  * Copyright 2011 Mozilla Foundation and contributors
@@ -12646,7 +12676,7 @@ SourceMapGenerator.prototype.toString =
12646
12676
 
12647
12677
  exports.SourceMapGenerator = SourceMapGenerator;
12648
12678
 
12649
- },{"./array-set":61,"./base64-vlq":62,"./mapping-list":65,"./util":70}],69:[function(require,module,exports){
12679
+ },{"./array-set":62,"./base64-vlq":63,"./mapping-list":66,"./util":71}],70:[function(require,module,exports){
12650
12680
  /* -*- Mode: js; js-indent-level: 2; -*- */
12651
12681
  /*
12652
12682
  * Copyright 2011 Mozilla Foundation and contributors
@@ -13061,7 +13091,7 @@ SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSou
13061
13091
 
13062
13092
  exports.SourceNode = SourceNode;
13063
13093
 
13064
- },{"./source-map-generator":68,"./util":70}],70:[function(require,module,exports){
13094
+ },{"./source-map-generator":69,"./util":71}],71:[function(require,module,exports){
13065
13095
  /* -*- Mode: js; js-indent-level: 2; -*- */
13066
13096
  /*
13067
13097
  * Copyright 2011 Mozilla Foundation and contributors
@@ -13551,7 +13581,7 @@ function computeSourceURL(sourceRoot, sourceURL, sourceMapURL) {
13551
13581
  }
13552
13582
  exports.computeSourceURL = computeSourceURL;
13553
13583
 
13554
- },{}],71:[function(require,module,exports){
13584
+ },{}],72:[function(require,module,exports){
13555
13585
  /*
13556
13586
  * Copyright 2009-2011 Mozilla Foundation and contributors
13557
13587
  * Licensed under the New BSD license. See LICENSE.txt or:
@@ -13561,7 +13591,7 @@ exports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGene
13561
13591
  exports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;
13562
13592
  exports.SourceNode = require('./lib/source-node').SourceNode;
13563
13593
 
13564
- },{"./lib/source-map-consumer":67,"./lib/source-map-generator":68,"./lib/source-node":69}],72:[function(require,module,exports){
13594
+ },{"./lib/source-map-consumer":68,"./lib/source-map-generator":69,"./lib/source-node":70}],73:[function(require,module,exports){
13565
13595
  /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
13566
13596
  exports.read = function (buffer, offset, isLE, mLen, nBytes) {
13567
13597
  var e, m
@@ -13648,7 +13678,7 @@ exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
13648
13678
  buffer[offset + i - d] |= s * 128
13649
13679
  }
13650
13680
 
13651
- },{}],73:[function(require,module,exports){
13681
+ },{}],74:[function(require,module,exports){
13652
13682
  var getNative = require('./_getNative'),
13653
13683
  root = require('./_root');
13654
13684
 
@@ -13657,7 +13687,7 @@ var DataView = getNative(root, 'DataView');
13657
13687
 
13658
13688
  module.exports = DataView;
13659
13689
 
13660
- },{"./_getNative":138,"./_root":179}],74:[function(require,module,exports){
13690
+ },{"./_getNative":144,"./_root":186}],75:[function(require,module,exports){
13661
13691
  var hashClear = require('./_hashClear'),
13662
13692
  hashDelete = require('./_hashDelete'),
13663
13693
  hashGet = require('./_hashGet'),
@@ -13691,7 +13721,7 @@ Hash.prototype.set = hashSet;
13691
13721
 
13692
13722
  module.exports = Hash;
13693
13723
 
13694
- },{"./_hashClear":146,"./_hashDelete":147,"./_hashGet":148,"./_hashHas":149,"./_hashSet":150}],75:[function(require,module,exports){
13724
+ },{"./_hashClear":153,"./_hashDelete":154,"./_hashGet":155,"./_hashHas":156,"./_hashSet":157}],76:[function(require,module,exports){
13695
13725
  var listCacheClear = require('./_listCacheClear'),
13696
13726
  listCacheDelete = require('./_listCacheDelete'),
13697
13727
  listCacheGet = require('./_listCacheGet'),
@@ -13725,7 +13755,7 @@ ListCache.prototype.set = listCacheSet;
13725
13755
 
13726
13756
  module.exports = ListCache;
13727
13757
 
13728
- },{"./_listCacheClear":160,"./_listCacheDelete":161,"./_listCacheGet":162,"./_listCacheHas":163,"./_listCacheSet":164}],76:[function(require,module,exports){
13758
+ },{"./_listCacheClear":167,"./_listCacheDelete":168,"./_listCacheGet":169,"./_listCacheHas":170,"./_listCacheSet":171}],77:[function(require,module,exports){
13729
13759
  var getNative = require('./_getNative'),
13730
13760
  root = require('./_root');
13731
13761
 
@@ -13734,7 +13764,7 @@ var Map = getNative(root, 'Map');
13734
13764
 
13735
13765
  module.exports = Map;
13736
13766
 
13737
- },{"./_getNative":138,"./_root":179}],77:[function(require,module,exports){
13767
+ },{"./_getNative":144,"./_root":186}],78:[function(require,module,exports){
13738
13768
  var mapCacheClear = require('./_mapCacheClear'),
13739
13769
  mapCacheDelete = require('./_mapCacheDelete'),
13740
13770
  mapCacheGet = require('./_mapCacheGet'),
@@ -13768,7 +13798,7 @@ MapCache.prototype.set = mapCacheSet;
13768
13798
 
13769
13799
  module.exports = MapCache;
13770
13800
 
13771
- },{"./_mapCacheClear":165,"./_mapCacheDelete":166,"./_mapCacheGet":167,"./_mapCacheHas":168,"./_mapCacheSet":169}],78:[function(require,module,exports){
13801
+ },{"./_mapCacheClear":172,"./_mapCacheDelete":173,"./_mapCacheGet":174,"./_mapCacheHas":175,"./_mapCacheSet":176}],79:[function(require,module,exports){
13772
13802
  var getNative = require('./_getNative'),
13773
13803
  root = require('./_root');
13774
13804
 
@@ -13777,7 +13807,7 @@ var Promise = getNative(root, 'Promise');
13777
13807
 
13778
13808
  module.exports = Promise;
13779
13809
 
13780
- },{"./_getNative":138,"./_root":179}],79:[function(require,module,exports){
13810
+ },{"./_getNative":144,"./_root":186}],80:[function(require,module,exports){
13781
13811
  var getNative = require('./_getNative'),
13782
13812
  root = require('./_root');
13783
13813
 
@@ -13786,7 +13816,7 @@ var Set = getNative(root, 'Set');
13786
13816
 
13787
13817
  module.exports = Set;
13788
13818
 
13789
- },{"./_getNative":138,"./_root":179}],80:[function(require,module,exports){
13819
+ },{"./_getNative":144,"./_root":186}],81:[function(require,module,exports){
13790
13820
  var ListCache = require('./_ListCache'),
13791
13821
  stackClear = require('./_stackClear'),
13792
13822
  stackDelete = require('./_stackDelete'),
@@ -13815,7 +13845,7 @@ Stack.prototype.set = stackSet;
13815
13845
 
13816
13846
  module.exports = Stack;
13817
13847
 
13818
- },{"./_ListCache":75,"./_stackClear":182,"./_stackDelete":183,"./_stackGet":184,"./_stackHas":185,"./_stackSet":186}],81:[function(require,module,exports){
13848
+ },{"./_ListCache":76,"./_stackClear":189,"./_stackDelete":190,"./_stackGet":191,"./_stackHas":192,"./_stackSet":193}],82:[function(require,module,exports){
13819
13849
  var root = require('./_root');
13820
13850
 
13821
13851
  /** Built-in value references. */
@@ -13823,7 +13853,7 @@ var Symbol = root.Symbol;
13823
13853
 
13824
13854
  module.exports = Symbol;
13825
13855
 
13826
- },{"./_root":179}],82:[function(require,module,exports){
13856
+ },{"./_root":186}],83:[function(require,module,exports){
13827
13857
  var root = require('./_root');
13828
13858
 
13829
13859
  /** Built-in value references. */
@@ -13831,7 +13861,7 @@ var Uint8Array = root.Uint8Array;
13831
13861
 
13832
13862
  module.exports = Uint8Array;
13833
13863
 
13834
- },{"./_root":179}],83:[function(require,module,exports){
13864
+ },{"./_root":186}],84:[function(require,module,exports){
13835
13865
  var getNative = require('./_getNative'),
13836
13866
  root = require('./_root');
13837
13867
 
@@ -13840,7 +13870,7 @@ var WeakMap = getNative(root, 'WeakMap');
13840
13870
 
13841
13871
  module.exports = WeakMap;
13842
13872
 
13843
- },{"./_getNative":138,"./_root":179}],84:[function(require,module,exports){
13873
+ },{"./_getNative":144,"./_root":186}],85:[function(require,module,exports){
13844
13874
  /**
13845
13875
  * A faster alternative to `Function#apply`, this function invokes `func`
13846
13876
  * with the `this` binding of `thisArg` and the arguments of `args`.
@@ -13863,7 +13893,7 @@ function apply(func, thisArg, args) {
13863
13893
 
13864
13894
  module.exports = apply;
13865
13895
 
13866
- },{}],85:[function(require,module,exports){
13896
+ },{}],86:[function(require,module,exports){
13867
13897
  /**
13868
13898
  * A specialized version of `_.forEach` for arrays without support for
13869
13899
  * iteratee shorthands.
@@ -13887,7 +13917,7 @@ function arrayEach(array, iteratee) {
13887
13917
 
13888
13918
  module.exports = arrayEach;
13889
13919
 
13890
- },{}],86:[function(require,module,exports){
13920
+ },{}],87:[function(require,module,exports){
13891
13921
  /**
13892
13922
  * A specialized version of `_.filter` for arrays without support for
13893
13923
  * iteratee shorthands.
@@ -13914,7 +13944,7 @@ function arrayFilter(array, predicate) {
13914
13944
 
13915
13945
  module.exports = arrayFilter;
13916
13946
 
13917
- },{}],87:[function(require,module,exports){
13947
+ },{}],88:[function(require,module,exports){
13918
13948
  var baseTimes = require('./_baseTimes'),
13919
13949
  isArguments = require('./isArguments'),
13920
13950
  isArray = require('./isArray'),
@@ -13965,7 +13995,7 @@ function arrayLikeKeys(value, inherited) {
13965
13995
 
13966
13996
  module.exports = arrayLikeKeys;
13967
13997
 
13968
- },{"./_baseTimes":114,"./_isIndex":155,"./isArguments":197,"./isArray":198,"./isBuffer":200,"./isTypedArray":209}],88:[function(require,module,exports){
13998
+ },{"./_baseTimes":119,"./_isIndex":162,"./isArguments":208,"./isArray":209,"./isBuffer":211,"./isTypedArray":221}],89:[function(require,module,exports){
13969
13999
  /**
13970
14000
  * A specialized version of `_.map` for arrays without support for iteratee
13971
14001
  * shorthands.
@@ -13988,7 +14018,7 @@ function arrayMap(array, iteratee) {
13988
14018
 
13989
14019
  module.exports = arrayMap;
13990
14020
 
13991
- },{}],89:[function(require,module,exports){
14021
+ },{}],90:[function(require,module,exports){
13992
14022
  /**
13993
14023
  * Appends the elements of `values` to `array`.
13994
14024
  *
@@ -14010,7 +14040,35 @@ function arrayPush(array, values) {
14010
14040
 
14011
14041
  module.exports = arrayPush;
14012
14042
 
14013
- },{}],90:[function(require,module,exports){
14043
+ },{}],91:[function(require,module,exports){
14044
+ var baseProperty = require('./_baseProperty');
14045
+
14046
+ /**
14047
+ * Gets the size of an ASCII `string`.
14048
+ *
14049
+ * @private
14050
+ * @param {string} string The string inspect.
14051
+ * @returns {number} Returns the string size.
14052
+ */
14053
+ var asciiSize = baseProperty('length');
14054
+
14055
+ module.exports = asciiSize;
14056
+
14057
+ },{"./_baseProperty":115}],92:[function(require,module,exports){
14058
+ /**
14059
+ * Converts an ASCII `string` to an array.
14060
+ *
14061
+ * @private
14062
+ * @param {string} string The string to convert.
14063
+ * @returns {Array} Returns the converted array.
14064
+ */
14065
+ function asciiToArray(string) {
14066
+ return string.split('');
14067
+ }
14068
+
14069
+ module.exports = asciiToArray;
14070
+
14071
+ },{}],93:[function(require,module,exports){
14014
14072
  var baseAssignValue = require('./_baseAssignValue'),
14015
14073
  eq = require('./eq');
14016
14074
 
@@ -14040,7 +14098,7 @@ function assignValue(object, key, value) {
14040
14098
 
14041
14099
  module.exports = assignValue;
14042
14100
 
14043
- },{"./_baseAssignValue":94,"./eq":193}],91:[function(require,module,exports){
14101
+ },{"./_baseAssignValue":97,"./eq":204}],94:[function(require,module,exports){
14044
14102
  var eq = require('./eq');
14045
14103
 
14046
14104
  /**
@@ -14063,7 +14121,7 @@ function assocIndexOf(array, key) {
14063
14121
 
14064
14122
  module.exports = assocIndexOf;
14065
14123
 
14066
- },{"./eq":193}],92:[function(require,module,exports){
14124
+ },{"./eq":204}],95:[function(require,module,exports){
14067
14125
  var copyObject = require('./_copyObject'),
14068
14126
  keys = require('./keys');
14069
14127
 
@@ -14082,7 +14140,7 @@ function baseAssign(object, source) {
14082
14140
 
14083
14141
  module.exports = baseAssign;
14084
14142
 
14085
- },{"./_copyObject":127,"./keys":210}],93:[function(require,module,exports){
14143
+ },{"./_copyObject":133,"./keys":222}],96:[function(require,module,exports){
14086
14144
  var copyObject = require('./_copyObject'),
14087
14145
  keysIn = require('./keysIn');
14088
14146
 
@@ -14101,7 +14159,7 @@ function baseAssignIn(object, source) {
14101
14159
 
14102
14160
  module.exports = baseAssignIn;
14103
14161
 
14104
- },{"./_copyObject":127,"./keysIn":211}],94:[function(require,module,exports){
14162
+ },{"./_copyObject":133,"./keysIn":223}],97:[function(require,module,exports){
14105
14163
  var defineProperty = require('./_defineProperty');
14106
14164
 
14107
14165
  /**
@@ -14128,7 +14186,7 @@ function baseAssignValue(object, key, value) {
14128
14186
 
14129
14187
  module.exports = baseAssignValue;
14130
14188
 
14131
- },{"./_defineProperty":132}],95:[function(require,module,exports){
14189
+ },{"./_defineProperty":138}],98:[function(require,module,exports){
14132
14190
  var Stack = require('./_Stack'),
14133
14191
  arrayEach = require('./_arrayEach'),
14134
14192
  assignValue = require('./_assignValue'),
@@ -14296,7 +14354,7 @@ function baseClone(value, bitmask, customizer, key, object, stack) {
14296
14354
 
14297
14355
  module.exports = baseClone;
14298
14356
 
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){
14357
+ },{"./_Stack":81,"./_arrayEach":86,"./_assignValue":93,"./_baseAssign":95,"./_baseAssignIn":96,"./_cloneBuffer":127,"./_copyArray":132,"./_copySymbols":134,"./_copySymbolsIn":135,"./_getAllKeys":141,"./_getAllKeysIn":142,"./_getTag":149,"./_initCloneArray":158,"./_initCloneByTag":159,"./_initCloneObject":160,"./isArray":209,"./isBuffer":211,"./isMap":214,"./isObject":215,"./isSet":219,"./keys":222,"./keysIn":223}],99:[function(require,module,exports){
14300
14358
  var isObject = require('./isObject');
14301
14359
 
14302
14360
  /** Built-in value references. */
@@ -14328,7 +14386,7 @@ var baseCreate = (function() {
14328
14386
 
14329
14387
  module.exports = baseCreate;
14330
14388
 
14331
- },{"./isObject":204}],97:[function(require,module,exports){
14389
+ },{"./isObject":215}],100:[function(require,module,exports){
14332
14390
  var arrayPush = require('./_arrayPush'),
14333
14391
  isFlattenable = require('./_isFlattenable');
14334
14392
 
@@ -14368,7 +14426,7 @@ function baseFlatten(array, depth, predicate, isStrict, result) {
14368
14426
 
14369
14427
  module.exports = baseFlatten;
14370
14428
 
14371
- },{"./_arrayPush":89,"./_isFlattenable":154}],98:[function(require,module,exports){
14429
+ },{"./_arrayPush":90,"./_isFlattenable":161}],101:[function(require,module,exports){
14372
14430
  var castPath = require('./_castPath'),
14373
14431
  toKey = require('./_toKey');
14374
14432
 
@@ -14394,7 +14452,7 @@ function baseGet(object, path) {
14394
14452
 
14395
14453
  module.exports = baseGet;
14396
14454
 
14397
- },{"./_castPath":119,"./_toKey":188}],99:[function(require,module,exports){
14455
+ },{"./_castPath":124,"./_toKey":197}],102:[function(require,module,exports){
14398
14456
  var arrayPush = require('./_arrayPush'),
14399
14457
  isArray = require('./isArray');
14400
14458
 
@@ -14416,7 +14474,7 @@ function baseGetAllKeys(object, keysFunc, symbolsFunc) {
14416
14474
 
14417
14475
  module.exports = baseGetAllKeys;
14418
14476
 
14419
- },{"./_arrayPush":89,"./isArray":198}],100:[function(require,module,exports){
14477
+ },{"./_arrayPush":90,"./isArray":209}],103:[function(require,module,exports){
14420
14478
  var Symbol = require('./_Symbol'),
14421
14479
  getRawTag = require('./_getRawTag'),
14422
14480
  objectToString = require('./_objectToString');
@@ -14446,7 +14504,7 @@ function baseGetTag(value) {
14446
14504
 
14447
14505
  module.exports = baseGetTag;
14448
14506
 
14449
- },{"./_Symbol":81,"./_getRawTag":140,"./_objectToString":175}],101:[function(require,module,exports){
14507
+ },{"./_Symbol":82,"./_getRawTag":146,"./_objectToString":182}],104:[function(require,module,exports){
14450
14508
  /**
14451
14509
  * The base implementation of `_.hasIn` without support for deep paths.
14452
14510
  *
@@ -14461,7 +14519,7 @@ function baseHasIn(object, key) {
14461
14519
 
14462
14520
  module.exports = baseHasIn;
14463
14521
 
14464
- },{}],102:[function(require,module,exports){
14522
+ },{}],105:[function(require,module,exports){
14465
14523
  var baseGetTag = require('./_baseGetTag'),
14466
14524
  isObjectLike = require('./isObjectLike');
14467
14525
 
@@ -14481,7 +14539,7 @@ function baseIsArguments(value) {
14481
14539
 
14482
14540
  module.exports = baseIsArguments;
14483
14541
 
14484
- },{"./_baseGetTag":100,"./isObjectLike":205}],103:[function(require,module,exports){
14542
+ },{"./_baseGetTag":103,"./isObjectLike":216}],106:[function(require,module,exports){
14485
14543
  var getTag = require('./_getTag'),
14486
14544
  isObjectLike = require('./isObjectLike');
14487
14545
 
@@ -14501,7 +14559,7 @@ function baseIsMap(value) {
14501
14559
 
14502
14560
  module.exports = baseIsMap;
14503
14561
 
14504
- },{"./_getTag":143,"./isObjectLike":205}],104:[function(require,module,exports){
14562
+ },{"./_getTag":149,"./isObjectLike":216}],107:[function(require,module,exports){
14505
14563
  var isFunction = require('./isFunction'),
14506
14564
  isMasked = require('./_isMasked'),
14507
14565
  isObject = require('./isObject'),
@@ -14550,7 +14608,27 @@ function baseIsNative(value) {
14550
14608
 
14551
14609
  module.exports = baseIsNative;
14552
14610
 
14553
- },{"./_isMasked":158,"./_toSource":189,"./isFunction":201,"./isObject":204}],105:[function(require,module,exports){
14611
+ },{"./_isMasked":165,"./_toSource":198,"./isFunction":212,"./isObject":215}],108:[function(require,module,exports){
14612
+ var baseGetTag = require('./_baseGetTag'),
14613
+ isObjectLike = require('./isObjectLike');
14614
+
14615
+ /** `Object#toString` result references. */
14616
+ var regexpTag = '[object RegExp]';
14617
+
14618
+ /**
14619
+ * The base implementation of `_.isRegExp` without Node.js optimizations.
14620
+ *
14621
+ * @private
14622
+ * @param {*} value The value to check.
14623
+ * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.
14624
+ */
14625
+ function baseIsRegExp(value) {
14626
+ return isObjectLike(value) && baseGetTag(value) == regexpTag;
14627
+ }
14628
+
14629
+ module.exports = baseIsRegExp;
14630
+
14631
+ },{"./_baseGetTag":103,"./isObjectLike":216}],109:[function(require,module,exports){
14554
14632
  var getTag = require('./_getTag'),
14555
14633
  isObjectLike = require('./isObjectLike');
14556
14634
 
@@ -14570,7 +14648,7 @@ function baseIsSet(value) {
14570
14648
 
14571
14649
  module.exports = baseIsSet;
14572
14650
 
14573
- },{"./_getTag":143,"./isObjectLike":205}],106:[function(require,module,exports){
14651
+ },{"./_getTag":149,"./isObjectLike":216}],110:[function(require,module,exports){
14574
14652
  var baseGetTag = require('./_baseGetTag'),
14575
14653
  isLength = require('./isLength'),
14576
14654
  isObjectLike = require('./isObjectLike');
@@ -14632,7 +14710,7 @@ function baseIsTypedArray(value) {
14632
14710
 
14633
14711
  module.exports = baseIsTypedArray;
14634
14712
 
14635
- },{"./_baseGetTag":100,"./isLength":202,"./isObjectLike":205}],107:[function(require,module,exports){
14713
+ },{"./_baseGetTag":103,"./isLength":213,"./isObjectLike":216}],111:[function(require,module,exports){
14636
14714
  var isPrototype = require('./_isPrototype'),
14637
14715
  nativeKeys = require('./_nativeKeys');
14638
14716
 
@@ -14664,7 +14742,7 @@ function baseKeys(object) {
14664
14742
 
14665
14743
  module.exports = baseKeys;
14666
14744
 
14667
- },{"./_isPrototype":159,"./_nativeKeys":172}],108:[function(require,module,exports){
14745
+ },{"./_isPrototype":166,"./_nativeKeys":179}],112:[function(require,module,exports){
14668
14746
  var isObject = require('./isObject'),
14669
14747
  isPrototype = require('./_isPrototype'),
14670
14748
  nativeKeysIn = require('./_nativeKeysIn');
@@ -14699,7 +14777,7 @@ function baseKeysIn(object) {
14699
14777
 
14700
14778
  module.exports = baseKeysIn;
14701
14779
 
14702
- },{"./_isPrototype":159,"./_nativeKeysIn":173,"./isObject":204}],109:[function(require,module,exports){
14780
+ },{"./_isPrototype":166,"./_nativeKeysIn":180,"./isObject":215}],113:[function(require,module,exports){
14703
14781
  var basePickBy = require('./_basePickBy'),
14704
14782
  hasIn = require('./hasIn');
14705
14783
 
@@ -14720,7 +14798,7 @@ function basePick(object, paths) {
14720
14798
 
14721
14799
  module.exports = basePick;
14722
14800
 
14723
- },{"./_basePickBy":110,"./hasIn":195}],110:[function(require,module,exports){
14801
+ },{"./_basePickBy":114,"./hasIn":206}],114:[function(require,module,exports){
14724
14802
  var baseGet = require('./_baseGet'),
14725
14803
  baseSet = require('./_baseSet'),
14726
14804
  castPath = require('./_castPath');
@@ -14752,7 +14830,23 @@ function basePickBy(object, paths, predicate) {
14752
14830
 
14753
14831
  module.exports = basePickBy;
14754
14832
 
14755
- },{"./_baseGet":98,"./_baseSet":111,"./_castPath":119}],111:[function(require,module,exports){
14833
+ },{"./_baseGet":101,"./_baseSet":116,"./_castPath":124}],115:[function(require,module,exports){
14834
+ /**
14835
+ * The base implementation of `_.property` without support for deep paths.
14836
+ *
14837
+ * @private
14838
+ * @param {string} key The key of the property to get.
14839
+ * @returns {Function} Returns the new accessor function.
14840
+ */
14841
+ function baseProperty(key) {
14842
+ return function(object) {
14843
+ return object == null ? undefined : object[key];
14844
+ };
14845
+ }
14846
+
14847
+ module.exports = baseProperty;
14848
+
14849
+ },{}],116:[function(require,module,exports){
14756
14850
  var assignValue = require('./_assignValue'),
14757
14851
  castPath = require('./_castPath'),
14758
14852
  isIndex = require('./_isIndex'),
@@ -14805,7 +14899,7 @@ function baseSet(object, path, value, customizer) {
14805
14899
 
14806
14900
  module.exports = baseSet;
14807
14901
 
14808
- },{"./_assignValue":90,"./_castPath":119,"./_isIndex":155,"./_toKey":188,"./isObject":204}],112:[function(require,module,exports){
14902
+ },{"./_assignValue":93,"./_castPath":124,"./_isIndex":162,"./_toKey":197,"./isObject":215}],117:[function(require,module,exports){
14809
14903
  var constant = require('./constant'),
14810
14904
  defineProperty = require('./_defineProperty'),
14811
14905
  identity = require('./identity');
@@ -14829,7 +14923,7 @@ var baseSetToString = !defineProperty ? identity : function(func, string) {
14829
14923
 
14830
14924
  module.exports = baseSetToString;
14831
14925
 
14832
- },{"./_defineProperty":132,"./constant":191,"./identity":196}],113:[function(require,module,exports){
14926
+ },{"./_defineProperty":138,"./constant":202,"./identity":207}],118:[function(require,module,exports){
14833
14927
  /**
14834
14928
  * The base implementation of `_.slice` without an iteratee call guard.
14835
14929
  *
@@ -14862,7 +14956,7 @@ function baseSlice(array, start, end) {
14862
14956
 
14863
14957
  module.exports = baseSlice;
14864
14958
 
14865
- },{}],114:[function(require,module,exports){
14959
+ },{}],119:[function(require,module,exports){
14866
14960
  /**
14867
14961
  * The base implementation of `_.times` without support for iteratee shorthands
14868
14962
  * or max array length checks.
@@ -14884,7 +14978,7 @@ function baseTimes(n, iteratee) {
14884
14978
 
14885
14979
  module.exports = baseTimes;
14886
14980
 
14887
- },{}],115:[function(require,module,exports){
14981
+ },{}],120:[function(require,module,exports){
14888
14982
  var Symbol = require('./_Symbol'),
14889
14983
  arrayMap = require('./_arrayMap'),
14890
14984
  isArray = require('./isArray'),
@@ -14923,7 +15017,7 @@ function baseToString(value) {
14923
15017
 
14924
15018
  module.exports = baseToString;
14925
15019
 
14926
- },{"./_Symbol":81,"./_arrayMap":88,"./isArray":198,"./isSymbol":208}],116:[function(require,module,exports){
15020
+ },{"./_Symbol":82,"./_arrayMap":89,"./isArray":209,"./isSymbol":220}],121:[function(require,module,exports){
14927
15021
  var trimmedEndIndex = require('./_trimmedEndIndex');
14928
15022
 
14929
15023
  /** Used to match leading whitespace. */
@@ -14944,7 +15038,7 @@ function baseTrim(string) {
14944
15038
 
14945
15039
  module.exports = baseTrim;
14946
15040
 
14947
- },{"./_trimmedEndIndex":190}],117:[function(require,module,exports){
15041
+ },{"./_trimmedEndIndex":199}],122:[function(require,module,exports){
14948
15042
  /**
14949
15043
  * The base implementation of `_.unary` without support for storing metadata.
14950
15044
  *
@@ -14960,7 +15054,7 @@ function baseUnary(func) {
14960
15054
 
14961
15055
  module.exports = baseUnary;
14962
15056
 
14963
- },{}],118:[function(require,module,exports){
15057
+ },{}],123:[function(require,module,exports){
14964
15058
  var castPath = require('./_castPath'),
14965
15059
  last = require('./last'),
14966
15060
  parent = require('./_parent'),
@@ -14982,7 +15076,7 @@ function baseUnset(object, path) {
14982
15076
 
14983
15077
  module.exports = baseUnset;
14984
15078
 
14985
- },{"./_castPath":119,"./_parent":178,"./_toKey":188,"./last":212}],119:[function(require,module,exports){
15079
+ },{"./_castPath":124,"./_parent":185,"./_toKey":197,"./last":224}],124:[function(require,module,exports){
14986
15080
  var isArray = require('./isArray'),
14987
15081
  isKey = require('./_isKey'),
14988
15082
  stringToPath = require('./_stringToPath'),
@@ -15005,7 +15099,27 @@ function castPath(value, object) {
15005
15099
 
15006
15100
  module.exports = castPath;
15007
15101
 
15008
- },{"./_isKey":156,"./_stringToPath":187,"./isArray":198,"./toString":221}],120:[function(require,module,exports){
15102
+ },{"./_isKey":163,"./_stringToPath":196,"./isArray":209,"./toString":235}],125:[function(require,module,exports){
15103
+ var baseSlice = require('./_baseSlice');
15104
+
15105
+ /**
15106
+ * Casts `array` to a slice if it's needed.
15107
+ *
15108
+ * @private
15109
+ * @param {Array} array The array to inspect.
15110
+ * @param {number} start The start position.
15111
+ * @param {number} [end=array.length] The end position.
15112
+ * @returns {Array} Returns the cast slice.
15113
+ */
15114
+ function castSlice(array, start, end) {
15115
+ var length = array.length;
15116
+ end = end === undefined ? length : end;
15117
+ return (!start && end >= length) ? array : baseSlice(array, start, end);
15118
+ }
15119
+
15120
+ module.exports = castSlice;
15121
+
15122
+ },{"./_baseSlice":118}],126:[function(require,module,exports){
15009
15123
  var Uint8Array = require('./_Uint8Array');
15010
15124
 
15011
15125
  /**
@@ -15023,7 +15137,7 @@ function cloneArrayBuffer(arrayBuffer) {
15023
15137
 
15024
15138
  module.exports = cloneArrayBuffer;
15025
15139
 
15026
- },{"./_Uint8Array":82}],121:[function(require,module,exports){
15140
+ },{"./_Uint8Array":83}],127:[function(require,module,exports){
15027
15141
  var root = require('./_root');
15028
15142
 
15029
15143
  /** Detect free variable `exports`. */
@@ -15060,7 +15174,7 @@ function cloneBuffer(buffer, isDeep) {
15060
15174
 
15061
15175
  module.exports = cloneBuffer;
15062
15176
 
15063
- },{"./_root":179}],122:[function(require,module,exports){
15177
+ },{"./_root":186}],128:[function(require,module,exports){
15064
15178
  var cloneArrayBuffer = require('./_cloneArrayBuffer');
15065
15179
 
15066
15180
  /**
@@ -15078,7 +15192,7 @@ function cloneDataView(dataView, isDeep) {
15078
15192
 
15079
15193
  module.exports = cloneDataView;
15080
15194
 
15081
- },{"./_cloneArrayBuffer":120}],123:[function(require,module,exports){
15195
+ },{"./_cloneArrayBuffer":126}],129:[function(require,module,exports){
15082
15196
  /** Used to match `RegExp` flags from their coerced string values. */
15083
15197
  var reFlags = /\w*$/;
15084
15198
 
@@ -15097,7 +15211,7 @@ function cloneRegExp(regexp) {
15097
15211
 
15098
15212
  module.exports = cloneRegExp;
15099
15213
 
15100
- },{}],124:[function(require,module,exports){
15214
+ },{}],130:[function(require,module,exports){
15101
15215
  var Symbol = require('./_Symbol');
15102
15216
 
15103
15217
  /** Used to convert symbols to primitives and strings. */
@@ -15117,7 +15231,7 @@ function cloneSymbol(symbol) {
15117
15231
 
15118
15232
  module.exports = cloneSymbol;
15119
15233
 
15120
- },{"./_Symbol":81}],125:[function(require,module,exports){
15234
+ },{"./_Symbol":82}],131:[function(require,module,exports){
15121
15235
  var cloneArrayBuffer = require('./_cloneArrayBuffer');
15122
15236
 
15123
15237
  /**
@@ -15135,7 +15249,7 @@ function cloneTypedArray(typedArray, isDeep) {
15135
15249
 
15136
15250
  module.exports = cloneTypedArray;
15137
15251
 
15138
- },{"./_cloneArrayBuffer":120}],126:[function(require,module,exports){
15252
+ },{"./_cloneArrayBuffer":126}],132:[function(require,module,exports){
15139
15253
  /**
15140
15254
  * Copies the values of `source` to `array`.
15141
15255
  *
@@ -15157,7 +15271,7 @@ function copyArray(source, array) {
15157
15271
 
15158
15272
  module.exports = copyArray;
15159
15273
 
15160
- },{}],127:[function(require,module,exports){
15274
+ },{}],133:[function(require,module,exports){
15161
15275
  var assignValue = require('./_assignValue'),
15162
15276
  baseAssignValue = require('./_baseAssignValue');
15163
15277
 
@@ -15199,7 +15313,7 @@ function copyObject(source, props, object, customizer) {
15199
15313
 
15200
15314
  module.exports = copyObject;
15201
15315
 
15202
- },{"./_assignValue":90,"./_baseAssignValue":94}],128:[function(require,module,exports){
15316
+ },{"./_assignValue":93,"./_baseAssignValue":97}],134:[function(require,module,exports){
15203
15317
  var copyObject = require('./_copyObject'),
15204
15318
  getSymbols = require('./_getSymbols');
15205
15319
 
@@ -15217,7 +15331,7 @@ function copySymbols(source, object) {
15217
15331
 
15218
15332
  module.exports = copySymbols;
15219
15333
 
15220
- },{"./_copyObject":127,"./_getSymbols":141}],129:[function(require,module,exports){
15334
+ },{"./_copyObject":133,"./_getSymbols":147}],135:[function(require,module,exports){
15221
15335
  var copyObject = require('./_copyObject'),
15222
15336
  getSymbolsIn = require('./_getSymbolsIn');
15223
15337
 
@@ -15235,7 +15349,7 @@ function copySymbolsIn(source, object) {
15235
15349
 
15236
15350
  module.exports = copySymbolsIn;
15237
15351
 
15238
- },{"./_copyObject":127,"./_getSymbolsIn":142}],130:[function(require,module,exports){
15352
+ },{"./_copyObject":133,"./_getSymbolsIn":148}],136:[function(require,module,exports){
15239
15353
  var root = require('./_root');
15240
15354
 
15241
15355
  /** Used to detect overreaching core-js shims. */
@@ -15243,7 +15357,7 @@ var coreJsData = root['__core-js_shared__'];
15243
15357
 
15244
15358
  module.exports = coreJsData;
15245
15359
 
15246
- },{"./_root":179}],131:[function(require,module,exports){
15360
+ },{"./_root":186}],137:[function(require,module,exports){
15247
15361
  var isPlainObject = require('./isPlainObject');
15248
15362
 
15249
15363
  /**
@@ -15261,7 +15375,7 @@ function customOmitClone(value) {
15261
15375
 
15262
15376
  module.exports = customOmitClone;
15263
15377
 
15264
- },{"./isPlainObject":206}],132:[function(require,module,exports){
15378
+ },{"./isPlainObject":217}],138:[function(require,module,exports){
15265
15379
  var getNative = require('./_getNative');
15266
15380
 
15267
15381
  var defineProperty = (function() {
@@ -15274,7 +15388,7 @@ var defineProperty = (function() {
15274
15388
 
15275
15389
  module.exports = defineProperty;
15276
15390
 
15277
- },{"./_getNative":138}],133:[function(require,module,exports){
15391
+ },{"./_getNative":144}],139:[function(require,module,exports){
15278
15392
  var flatten = require('./flatten'),
15279
15393
  overRest = require('./_overRest'),
15280
15394
  setToString = require('./_setToString');
@@ -15292,7 +15406,7 @@ function flatRest(func) {
15292
15406
 
15293
15407
  module.exports = flatRest;
15294
15408
 
15295
- },{"./_overRest":177,"./_setToString":180,"./flatten":194}],134:[function(require,module,exports){
15409
+ },{"./_overRest":184,"./_setToString":187,"./flatten":205}],140:[function(require,module,exports){
15296
15410
  (function (global){(function (){
15297
15411
  /** Detect free variable `global` from Node.js. */
15298
15412
  var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
@@ -15300,7 +15414,7 @@ var freeGlobal = typeof global == 'object' && global && global.Object === Object
15300
15414
  module.exports = freeGlobal;
15301
15415
 
15302
15416
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
15303
- },{}],135:[function(require,module,exports){
15417
+ },{}],141:[function(require,module,exports){
15304
15418
  var baseGetAllKeys = require('./_baseGetAllKeys'),
15305
15419
  getSymbols = require('./_getSymbols'),
15306
15420
  keys = require('./keys');
@@ -15318,7 +15432,7 @@ function getAllKeys(object) {
15318
15432
 
15319
15433
  module.exports = getAllKeys;
15320
15434
 
15321
- },{"./_baseGetAllKeys":99,"./_getSymbols":141,"./keys":210}],136:[function(require,module,exports){
15435
+ },{"./_baseGetAllKeys":102,"./_getSymbols":147,"./keys":222}],142:[function(require,module,exports){
15322
15436
  var baseGetAllKeys = require('./_baseGetAllKeys'),
15323
15437
  getSymbolsIn = require('./_getSymbolsIn'),
15324
15438
  keysIn = require('./keysIn');
@@ -15337,7 +15451,7 @@ function getAllKeysIn(object) {
15337
15451
 
15338
15452
  module.exports = getAllKeysIn;
15339
15453
 
15340
- },{"./_baseGetAllKeys":99,"./_getSymbolsIn":142,"./keysIn":211}],137:[function(require,module,exports){
15454
+ },{"./_baseGetAllKeys":102,"./_getSymbolsIn":148,"./keysIn":223}],143:[function(require,module,exports){
15341
15455
  var isKeyable = require('./_isKeyable');
15342
15456
 
15343
15457
  /**
@@ -15357,7 +15471,7 @@ function getMapData(map, key) {
15357
15471
 
15358
15472
  module.exports = getMapData;
15359
15473
 
15360
- },{"./_isKeyable":157}],138:[function(require,module,exports){
15474
+ },{"./_isKeyable":164}],144:[function(require,module,exports){
15361
15475
  var baseIsNative = require('./_baseIsNative'),
15362
15476
  getValue = require('./_getValue');
15363
15477
 
@@ -15376,7 +15490,7 @@ function getNative(object, key) {
15376
15490
 
15377
15491
  module.exports = getNative;
15378
15492
 
15379
- },{"./_baseIsNative":104,"./_getValue":144}],139:[function(require,module,exports){
15493
+ },{"./_baseIsNative":107,"./_getValue":150}],145:[function(require,module,exports){
15380
15494
  var overArg = require('./_overArg');
15381
15495
 
15382
15496
  /** Built-in value references. */
@@ -15384,7 +15498,7 @@ var getPrototype = overArg(Object.getPrototypeOf, Object);
15384
15498
 
15385
15499
  module.exports = getPrototype;
15386
15500
 
15387
- },{"./_overArg":176}],140:[function(require,module,exports){
15501
+ },{"./_overArg":183}],146:[function(require,module,exports){
15388
15502
  var Symbol = require('./_Symbol');
15389
15503
 
15390
15504
  /** Used for built-in method references. */
@@ -15432,7 +15546,7 @@ function getRawTag(value) {
15432
15546
 
15433
15547
  module.exports = getRawTag;
15434
15548
 
15435
- },{"./_Symbol":81}],141:[function(require,module,exports){
15549
+ },{"./_Symbol":82}],147:[function(require,module,exports){
15436
15550
  var arrayFilter = require('./_arrayFilter'),
15437
15551
  stubArray = require('./stubArray');
15438
15552
 
@@ -15464,7 +15578,7 @@ var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
15464
15578
 
15465
15579
  module.exports = getSymbols;
15466
15580
 
15467
- },{"./_arrayFilter":86,"./stubArray":218}],142:[function(require,module,exports){
15581
+ },{"./_arrayFilter":87,"./stubArray":230}],148:[function(require,module,exports){
15468
15582
  var arrayPush = require('./_arrayPush'),
15469
15583
  getPrototype = require('./_getPrototype'),
15470
15584
  getSymbols = require('./_getSymbols'),
@@ -15491,7 +15605,7 @@ var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {
15491
15605
 
15492
15606
  module.exports = getSymbolsIn;
15493
15607
 
15494
- },{"./_arrayPush":89,"./_getPrototype":139,"./_getSymbols":141,"./stubArray":218}],143:[function(require,module,exports){
15608
+ },{"./_arrayPush":90,"./_getPrototype":145,"./_getSymbols":147,"./stubArray":230}],149:[function(require,module,exports){
15495
15609
  var DataView = require('./_DataView'),
15496
15610
  Map = require('./_Map'),
15497
15611
  Promise = require('./_Promise'),
@@ -15551,7 +15665,7 @@ if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
15551
15665
 
15552
15666
  module.exports = getTag;
15553
15667
 
15554
- },{"./_DataView":73,"./_Map":76,"./_Promise":78,"./_Set":79,"./_WeakMap":83,"./_baseGetTag":100,"./_toSource":189}],144:[function(require,module,exports){
15668
+ },{"./_DataView":74,"./_Map":77,"./_Promise":79,"./_Set":80,"./_WeakMap":84,"./_baseGetTag":103,"./_toSource":198}],150:[function(require,module,exports){
15555
15669
  /**
15556
15670
  * Gets the value at `key` of `object`.
15557
15671
  *
@@ -15566,7 +15680,7 @@ function getValue(object, key) {
15566
15680
 
15567
15681
  module.exports = getValue;
15568
15682
 
15569
- },{}],145:[function(require,module,exports){
15683
+ },{}],151:[function(require,module,exports){
15570
15684
  var castPath = require('./_castPath'),
15571
15685
  isArguments = require('./isArguments'),
15572
15686
  isArray = require('./isArray'),
@@ -15607,7 +15721,35 @@ function hasPath(object, path, hasFunc) {
15607
15721
 
15608
15722
  module.exports = hasPath;
15609
15723
 
15610
- },{"./_castPath":119,"./_isIndex":155,"./_toKey":188,"./isArguments":197,"./isArray":198,"./isLength":202}],146:[function(require,module,exports){
15724
+ },{"./_castPath":124,"./_isIndex":162,"./_toKey":197,"./isArguments":208,"./isArray":209,"./isLength":213}],152:[function(require,module,exports){
15725
+ /** Used to compose unicode character classes. */
15726
+ var rsAstralRange = '\\ud800-\\udfff',
15727
+ rsComboMarksRange = '\\u0300-\\u036f',
15728
+ reComboHalfMarksRange = '\\ufe20-\\ufe2f',
15729
+ rsComboSymbolsRange = '\\u20d0-\\u20ff',
15730
+ rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,
15731
+ rsVarRange = '\\ufe0e\\ufe0f';
15732
+
15733
+ /** Used to compose unicode capture groups. */
15734
+ var rsZWJ = '\\u200d';
15735
+
15736
+ /** 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/). */
15737
+ var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');
15738
+
15739
+ /**
15740
+ * Checks if `string` contains Unicode symbols.
15741
+ *
15742
+ * @private
15743
+ * @param {string} string The string to inspect.
15744
+ * @returns {boolean} Returns `true` if a symbol is found, else `false`.
15745
+ */
15746
+ function hasUnicode(string) {
15747
+ return reHasUnicode.test(string);
15748
+ }
15749
+
15750
+ module.exports = hasUnicode;
15751
+
15752
+ },{}],153:[function(require,module,exports){
15611
15753
  var nativeCreate = require('./_nativeCreate');
15612
15754
 
15613
15755
  /**
@@ -15624,7 +15766,7 @@ function hashClear() {
15624
15766
 
15625
15767
  module.exports = hashClear;
15626
15768
 
15627
- },{"./_nativeCreate":171}],147:[function(require,module,exports){
15769
+ },{"./_nativeCreate":178}],154:[function(require,module,exports){
15628
15770
  /**
15629
15771
  * Removes `key` and its value from the hash.
15630
15772
  *
@@ -15643,7 +15785,7 @@ function hashDelete(key) {
15643
15785
 
15644
15786
  module.exports = hashDelete;
15645
15787
 
15646
- },{}],148:[function(require,module,exports){
15788
+ },{}],155:[function(require,module,exports){
15647
15789
  var nativeCreate = require('./_nativeCreate');
15648
15790
 
15649
15791
  /** Used to stand-in for `undefined` hash values. */
@@ -15675,7 +15817,7 @@ function hashGet(key) {
15675
15817
 
15676
15818
  module.exports = hashGet;
15677
15819
 
15678
- },{"./_nativeCreate":171}],149:[function(require,module,exports){
15820
+ },{"./_nativeCreate":178}],156:[function(require,module,exports){
15679
15821
  var nativeCreate = require('./_nativeCreate');
15680
15822
 
15681
15823
  /** Used for built-in method references. */
@@ -15700,7 +15842,7 @@ function hashHas(key) {
15700
15842
 
15701
15843
  module.exports = hashHas;
15702
15844
 
15703
- },{"./_nativeCreate":171}],150:[function(require,module,exports){
15845
+ },{"./_nativeCreate":178}],157:[function(require,module,exports){
15704
15846
  var nativeCreate = require('./_nativeCreate');
15705
15847
 
15706
15848
  /** Used to stand-in for `undefined` hash values. */
@@ -15725,7 +15867,7 @@ function hashSet(key, value) {
15725
15867
 
15726
15868
  module.exports = hashSet;
15727
15869
 
15728
- },{"./_nativeCreate":171}],151:[function(require,module,exports){
15870
+ },{"./_nativeCreate":178}],158:[function(require,module,exports){
15729
15871
  /** Used for built-in method references. */
15730
15872
  var objectProto = Object.prototype;
15731
15873
 
@@ -15753,7 +15895,7 @@ function initCloneArray(array) {
15753
15895
 
15754
15896
  module.exports = initCloneArray;
15755
15897
 
15756
- },{}],152:[function(require,module,exports){
15898
+ },{}],159:[function(require,module,exports){
15757
15899
  var cloneArrayBuffer = require('./_cloneArrayBuffer'),
15758
15900
  cloneDataView = require('./_cloneDataView'),
15759
15901
  cloneRegExp = require('./_cloneRegExp'),
@@ -15832,7 +15974,7 @@ function initCloneByTag(object, tag, isDeep) {
15832
15974
 
15833
15975
  module.exports = initCloneByTag;
15834
15976
 
15835
- },{"./_cloneArrayBuffer":120,"./_cloneDataView":122,"./_cloneRegExp":123,"./_cloneSymbol":124,"./_cloneTypedArray":125}],153:[function(require,module,exports){
15977
+ },{"./_cloneArrayBuffer":126,"./_cloneDataView":128,"./_cloneRegExp":129,"./_cloneSymbol":130,"./_cloneTypedArray":131}],160:[function(require,module,exports){
15836
15978
  var baseCreate = require('./_baseCreate'),
15837
15979
  getPrototype = require('./_getPrototype'),
15838
15980
  isPrototype = require('./_isPrototype');
@@ -15852,7 +15994,7 @@ function initCloneObject(object) {
15852
15994
 
15853
15995
  module.exports = initCloneObject;
15854
15996
 
15855
- },{"./_baseCreate":96,"./_getPrototype":139,"./_isPrototype":159}],154:[function(require,module,exports){
15997
+ },{"./_baseCreate":99,"./_getPrototype":145,"./_isPrototype":166}],161:[function(require,module,exports){
15856
15998
  var Symbol = require('./_Symbol'),
15857
15999
  isArguments = require('./isArguments'),
15858
16000
  isArray = require('./isArray');
@@ -15874,7 +16016,7 @@ function isFlattenable(value) {
15874
16016
 
15875
16017
  module.exports = isFlattenable;
15876
16018
 
15877
- },{"./_Symbol":81,"./isArguments":197,"./isArray":198}],155:[function(require,module,exports){
16019
+ },{"./_Symbol":82,"./isArguments":208,"./isArray":209}],162:[function(require,module,exports){
15878
16020
  /** Used as references for various `Number` constants. */
15879
16021
  var MAX_SAFE_INTEGER = 9007199254740991;
15880
16022
 
@@ -15901,7 +16043,7 @@ function isIndex(value, length) {
15901
16043
 
15902
16044
  module.exports = isIndex;
15903
16045
 
15904
- },{}],156:[function(require,module,exports){
16046
+ },{}],163:[function(require,module,exports){
15905
16047
  var isArray = require('./isArray'),
15906
16048
  isSymbol = require('./isSymbol');
15907
16049
 
@@ -15932,7 +16074,7 @@ function isKey(value, object) {
15932
16074
 
15933
16075
  module.exports = isKey;
15934
16076
 
15935
- },{"./isArray":198,"./isSymbol":208}],157:[function(require,module,exports){
16077
+ },{"./isArray":209,"./isSymbol":220}],164:[function(require,module,exports){
15936
16078
  /**
15937
16079
  * Checks if `value` is suitable for use as unique object key.
15938
16080
  *
@@ -15949,7 +16091,7 @@ function isKeyable(value) {
15949
16091
 
15950
16092
  module.exports = isKeyable;
15951
16093
 
15952
- },{}],158:[function(require,module,exports){
16094
+ },{}],165:[function(require,module,exports){
15953
16095
  var coreJsData = require('./_coreJsData');
15954
16096
 
15955
16097
  /** Used to detect methods masquerading as native. */
@@ -15971,7 +16113,7 @@ function isMasked(func) {
15971
16113
 
15972
16114
  module.exports = isMasked;
15973
16115
 
15974
- },{"./_coreJsData":130}],159:[function(require,module,exports){
16116
+ },{"./_coreJsData":136}],166:[function(require,module,exports){
15975
16117
  /** Used for built-in method references. */
15976
16118
  var objectProto = Object.prototype;
15977
16119
 
@@ -15991,7 +16133,7 @@ function isPrototype(value) {
15991
16133
 
15992
16134
  module.exports = isPrototype;
15993
16135
 
15994
- },{}],160:[function(require,module,exports){
16136
+ },{}],167:[function(require,module,exports){
15995
16137
  /**
15996
16138
  * Removes all key-value entries from the list cache.
15997
16139
  *
@@ -16006,7 +16148,7 @@ function listCacheClear() {
16006
16148
 
16007
16149
  module.exports = listCacheClear;
16008
16150
 
16009
- },{}],161:[function(require,module,exports){
16151
+ },{}],168:[function(require,module,exports){
16010
16152
  var assocIndexOf = require('./_assocIndexOf');
16011
16153
 
16012
16154
  /** Used for built-in method references. */
@@ -16043,7 +16185,7 @@ function listCacheDelete(key) {
16043
16185
 
16044
16186
  module.exports = listCacheDelete;
16045
16187
 
16046
- },{"./_assocIndexOf":91}],162:[function(require,module,exports){
16188
+ },{"./_assocIndexOf":94}],169:[function(require,module,exports){
16047
16189
  var assocIndexOf = require('./_assocIndexOf');
16048
16190
 
16049
16191
  /**
@@ -16064,7 +16206,7 @@ function listCacheGet(key) {
16064
16206
 
16065
16207
  module.exports = listCacheGet;
16066
16208
 
16067
- },{"./_assocIndexOf":91}],163:[function(require,module,exports){
16209
+ },{"./_assocIndexOf":94}],170:[function(require,module,exports){
16068
16210
  var assocIndexOf = require('./_assocIndexOf');
16069
16211
 
16070
16212
  /**
@@ -16082,7 +16224,7 @@ function listCacheHas(key) {
16082
16224
 
16083
16225
  module.exports = listCacheHas;
16084
16226
 
16085
- },{"./_assocIndexOf":91}],164:[function(require,module,exports){
16227
+ },{"./_assocIndexOf":94}],171:[function(require,module,exports){
16086
16228
  var assocIndexOf = require('./_assocIndexOf');
16087
16229
 
16088
16230
  /**
@@ -16110,7 +16252,7 @@ function listCacheSet(key, value) {
16110
16252
 
16111
16253
  module.exports = listCacheSet;
16112
16254
 
16113
- },{"./_assocIndexOf":91}],165:[function(require,module,exports){
16255
+ },{"./_assocIndexOf":94}],172:[function(require,module,exports){
16114
16256
  var Hash = require('./_Hash'),
16115
16257
  ListCache = require('./_ListCache'),
16116
16258
  Map = require('./_Map');
@@ -16133,7 +16275,7 @@ function mapCacheClear() {
16133
16275
 
16134
16276
  module.exports = mapCacheClear;
16135
16277
 
16136
- },{"./_Hash":74,"./_ListCache":75,"./_Map":76}],166:[function(require,module,exports){
16278
+ },{"./_Hash":75,"./_ListCache":76,"./_Map":77}],173:[function(require,module,exports){
16137
16279
  var getMapData = require('./_getMapData');
16138
16280
 
16139
16281
  /**
@@ -16153,7 +16295,7 @@ function mapCacheDelete(key) {
16153
16295
 
16154
16296
  module.exports = mapCacheDelete;
16155
16297
 
16156
- },{"./_getMapData":137}],167:[function(require,module,exports){
16298
+ },{"./_getMapData":143}],174:[function(require,module,exports){
16157
16299
  var getMapData = require('./_getMapData');
16158
16300
 
16159
16301
  /**
@@ -16171,7 +16313,7 @@ function mapCacheGet(key) {
16171
16313
 
16172
16314
  module.exports = mapCacheGet;
16173
16315
 
16174
- },{"./_getMapData":137}],168:[function(require,module,exports){
16316
+ },{"./_getMapData":143}],175:[function(require,module,exports){
16175
16317
  var getMapData = require('./_getMapData');
16176
16318
 
16177
16319
  /**
@@ -16189,7 +16331,7 @@ function mapCacheHas(key) {
16189
16331
 
16190
16332
  module.exports = mapCacheHas;
16191
16333
 
16192
- },{"./_getMapData":137}],169:[function(require,module,exports){
16334
+ },{"./_getMapData":143}],176:[function(require,module,exports){
16193
16335
  var getMapData = require('./_getMapData');
16194
16336
 
16195
16337
  /**
@@ -16213,7 +16355,7 @@ function mapCacheSet(key, value) {
16213
16355
 
16214
16356
  module.exports = mapCacheSet;
16215
16357
 
16216
- },{"./_getMapData":137}],170:[function(require,module,exports){
16358
+ },{"./_getMapData":143}],177:[function(require,module,exports){
16217
16359
  var memoize = require('./memoize');
16218
16360
 
16219
16361
  /** Used as the maximum memoize cache size. */
@@ -16241,7 +16383,7 @@ function memoizeCapped(func) {
16241
16383
 
16242
16384
  module.exports = memoizeCapped;
16243
16385
 
16244
- },{"./memoize":213}],171:[function(require,module,exports){
16386
+ },{"./memoize":225}],178:[function(require,module,exports){
16245
16387
  var getNative = require('./_getNative');
16246
16388
 
16247
16389
  /* Built-in method references that are verified to be native. */
@@ -16249,7 +16391,7 @@ var nativeCreate = getNative(Object, 'create');
16249
16391
 
16250
16392
  module.exports = nativeCreate;
16251
16393
 
16252
- },{"./_getNative":138}],172:[function(require,module,exports){
16394
+ },{"./_getNative":144}],179:[function(require,module,exports){
16253
16395
  var overArg = require('./_overArg');
16254
16396
 
16255
16397
  /* Built-in method references for those with the same name as other `lodash` methods. */
@@ -16257,7 +16399,7 @@ var nativeKeys = overArg(Object.keys, Object);
16257
16399
 
16258
16400
  module.exports = nativeKeys;
16259
16401
 
16260
- },{"./_overArg":176}],173:[function(require,module,exports){
16402
+ },{"./_overArg":183}],180:[function(require,module,exports){
16261
16403
  /**
16262
16404
  * This function is like
16263
16405
  * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
@@ -16279,7 +16421,7 @@ function nativeKeysIn(object) {
16279
16421
 
16280
16422
  module.exports = nativeKeysIn;
16281
16423
 
16282
- },{}],174:[function(require,module,exports){
16424
+ },{}],181:[function(require,module,exports){
16283
16425
  var freeGlobal = require('./_freeGlobal');
16284
16426
 
16285
16427
  /** Detect free variable `exports`. */
@@ -16311,7 +16453,7 @@ var nodeUtil = (function() {
16311
16453
 
16312
16454
  module.exports = nodeUtil;
16313
16455
 
16314
- },{"./_freeGlobal":134}],175:[function(require,module,exports){
16456
+ },{"./_freeGlobal":140}],182:[function(require,module,exports){
16315
16457
  /** Used for built-in method references. */
16316
16458
  var objectProto = Object.prototype;
16317
16459
 
@@ -16335,7 +16477,7 @@ function objectToString(value) {
16335
16477
 
16336
16478
  module.exports = objectToString;
16337
16479
 
16338
- },{}],176:[function(require,module,exports){
16480
+ },{}],183:[function(require,module,exports){
16339
16481
  /**
16340
16482
  * Creates a unary function that invokes `func` with its argument transformed.
16341
16483
  *
@@ -16352,7 +16494,7 @@ function overArg(func, transform) {
16352
16494
 
16353
16495
  module.exports = overArg;
16354
16496
 
16355
- },{}],177:[function(require,module,exports){
16497
+ },{}],184:[function(require,module,exports){
16356
16498
  var apply = require('./_apply');
16357
16499
 
16358
16500
  /* Built-in method references for those with the same name as other `lodash` methods. */
@@ -16390,7 +16532,7 @@ function overRest(func, start, transform) {
16390
16532
 
16391
16533
  module.exports = overRest;
16392
16534
 
16393
- },{"./_apply":84}],178:[function(require,module,exports){
16535
+ },{"./_apply":85}],185:[function(require,module,exports){
16394
16536
  var baseGet = require('./_baseGet'),
16395
16537
  baseSlice = require('./_baseSlice');
16396
16538
 
@@ -16408,7 +16550,7 @@ function parent(object, path) {
16408
16550
 
16409
16551
  module.exports = parent;
16410
16552
 
16411
- },{"./_baseGet":98,"./_baseSlice":113}],179:[function(require,module,exports){
16553
+ },{"./_baseGet":101,"./_baseSlice":118}],186:[function(require,module,exports){
16412
16554
  var freeGlobal = require('./_freeGlobal');
16413
16555
 
16414
16556
  /** Detect free variable `self`. */
@@ -16419,7 +16561,7 @@ var root = freeGlobal || freeSelf || Function('return this')();
16419
16561
 
16420
16562
  module.exports = root;
16421
16563
 
16422
- },{"./_freeGlobal":134}],180:[function(require,module,exports){
16564
+ },{"./_freeGlobal":140}],187:[function(require,module,exports){
16423
16565
  var baseSetToString = require('./_baseSetToString'),
16424
16566
  shortOut = require('./_shortOut');
16425
16567
 
@@ -16435,7 +16577,7 @@ var setToString = shortOut(baseSetToString);
16435
16577
 
16436
16578
  module.exports = setToString;
16437
16579
 
16438
- },{"./_baseSetToString":112,"./_shortOut":181}],181:[function(require,module,exports){
16580
+ },{"./_baseSetToString":117,"./_shortOut":188}],188:[function(require,module,exports){
16439
16581
  /** Used to detect hot functions by number of calls within a span of milliseconds. */
16440
16582
  var HOT_COUNT = 800,
16441
16583
  HOT_SPAN = 16;
@@ -16474,7 +16616,7 @@ function shortOut(func) {
16474
16616
 
16475
16617
  module.exports = shortOut;
16476
16618
 
16477
- },{}],182:[function(require,module,exports){
16619
+ },{}],189:[function(require,module,exports){
16478
16620
  var ListCache = require('./_ListCache');
16479
16621
 
16480
16622
  /**
@@ -16491,7 +16633,7 @@ function stackClear() {
16491
16633
 
16492
16634
  module.exports = stackClear;
16493
16635
 
16494
- },{"./_ListCache":75}],183:[function(require,module,exports){
16636
+ },{"./_ListCache":76}],190:[function(require,module,exports){
16495
16637
  /**
16496
16638
  * Removes `key` and its value from the stack.
16497
16639
  *
@@ -16511,7 +16653,7 @@ function stackDelete(key) {
16511
16653
 
16512
16654
  module.exports = stackDelete;
16513
16655
 
16514
- },{}],184:[function(require,module,exports){
16656
+ },{}],191:[function(require,module,exports){
16515
16657
  /**
16516
16658
  * Gets the stack value for `key`.
16517
16659
  *
@@ -16527,7 +16669,7 @@ function stackGet(key) {
16527
16669
 
16528
16670
  module.exports = stackGet;
16529
16671
 
16530
- },{}],185:[function(require,module,exports){
16672
+ },{}],192:[function(require,module,exports){
16531
16673
  /**
16532
16674
  * Checks if a stack value for `key` exists.
16533
16675
  *
@@ -16543,7 +16685,7 @@ function stackHas(key) {
16543
16685
 
16544
16686
  module.exports = stackHas;
16545
16687
 
16546
- },{}],186:[function(require,module,exports){
16688
+ },{}],193:[function(require,module,exports){
16547
16689
  var ListCache = require('./_ListCache'),
16548
16690
  Map = require('./_Map'),
16549
16691
  MapCache = require('./_MapCache');
@@ -16579,7 +16721,47 @@ function stackSet(key, value) {
16579
16721
 
16580
16722
  module.exports = stackSet;
16581
16723
 
16582
- },{"./_ListCache":75,"./_Map":76,"./_MapCache":77}],187:[function(require,module,exports){
16724
+ },{"./_ListCache":76,"./_Map":77,"./_MapCache":78}],194:[function(require,module,exports){
16725
+ var asciiSize = require('./_asciiSize'),
16726
+ hasUnicode = require('./_hasUnicode'),
16727
+ unicodeSize = require('./_unicodeSize');
16728
+
16729
+ /**
16730
+ * Gets the number of symbols in `string`.
16731
+ *
16732
+ * @private
16733
+ * @param {string} string The string to inspect.
16734
+ * @returns {number} Returns the string size.
16735
+ */
16736
+ function stringSize(string) {
16737
+ return hasUnicode(string)
16738
+ ? unicodeSize(string)
16739
+ : asciiSize(string);
16740
+ }
16741
+
16742
+ module.exports = stringSize;
16743
+
16744
+ },{"./_asciiSize":91,"./_hasUnicode":152,"./_unicodeSize":200}],195:[function(require,module,exports){
16745
+ var asciiToArray = require('./_asciiToArray'),
16746
+ hasUnicode = require('./_hasUnicode'),
16747
+ unicodeToArray = require('./_unicodeToArray');
16748
+
16749
+ /**
16750
+ * Converts `string` to an array.
16751
+ *
16752
+ * @private
16753
+ * @param {string} string The string to convert.
16754
+ * @returns {Array} Returns the converted array.
16755
+ */
16756
+ function stringToArray(string) {
16757
+ return hasUnicode(string)
16758
+ ? unicodeToArray(string)
16759
+ : asciiToArray(string);
16760
+ }
16761
+
16762
+ module.exports = stringToArray;
16763
+
16764
+ },{"./_asciiToArray":92,"./_hasUnicode":152,"./_unicodeToArray":201}],196:[function(require,module,exports){
16583
16765
  var memoizeCapped = require('./_memoizeCapped');
16584
16766
 
16585
16767
  /** Used to match property names within property paths. */
@@ -16608,7 +16790,7 @@ var stringToPath = memoizeCapped(function(string) {
16608
16790
 
16609
16791
  module.exports = stringToPath;
16610
16792
 
16611
- },{"./_memoizeCapped":170}],188:[function(require,module,exports){
16793
+ },{"./_memoizeCapped":177}],197:[function(require,module,exports){
16612
16794
  var isSymbol = require('./isSymbol');
16613
16795
 
16614
16796
  /** Used as references for various `Number` constants. */
@@ -16631,7 +16813,7 @@ function toKey(value) {
16631
16813
 
16632
16814
  module.exports = toKey;
16633
16815
 
16634
- },{"./isSymbol":208}],189:[function(require,module,exports){
16816
+ },{"./isSymbol":220}],198:[function(require,module,exports){
16635
16817
  /** Used for built-in method references. */
16636
16818
  var funcProto = Function.prototype;
16637
16819
 
@@ -16659,7 +16841,7 @@ function toSource(func) {
16659
16841
 
16660
16842
  module.exports = toSource;
16661
16843
 
16662
- },{}],190:[function(require,module,exports){
16844
+ },{}],199:[function(require,module,exports){
16663
16845
  /** Used to match a single whitespace character. */
16664
16846
  var reWhitespace = /\s/;
16665
16847
 
@@ -16680,7 +16862,95 @@ function trimmedEndIndex(string) {
16680
16862
 
16681
16863
  module.exports = trimmedEndIndex;
16682
16864
 
16683
- },{}],191:[function(require,module,exports){
16865
+ },{}],200:[function(require,module,exports){
16866
+ /** Used to compose unicode character classes. */
16867
+ var rsAstralRange = '\\ud800-\\udfff',
16868
+ rsComboMarksRange = '\\u0300-\\u036f',
16869
+ reComboHalfMarksRange = '\\ufe20-\\ufe2f',
16870
+ rsComboSymbolsRange = '\\u20d0-\\u20ff',
16871
+ rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,
16872
+ rsVarRange = '\\ufe0e\\ufe0f';
16873
+
16874
+ /** Used to compose unicode capture groups. */
16875
+ var rsAstral = '[' + rsAstralRange + ']',
16876
+ rsCombo = '[' + rsComboRange + ']',
16877
+ rsFitz = '\\ud83c[\\udffb-\\udfff]',
16878
+ rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',
16879
+ rsNonAstral = '[^' + rsAstralRange + ']',
16880
+ rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}',
16881
+ rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]',
16882
+ rsZWJ = '\\u200d';
16883
+
16884
+ /** Used to compose unicode regexes. */
16885
+ var reOptMod = rsModifier + '?',
16886
+ rsOptVar = '[' + rsVarRange + ']?',
16887
+ rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',
16888
+ rsSeq = rsOptVar + reOptMod + rsOptJoin,
16889
+ rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
16890
+
16891
+ /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
16892
+ var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
16893
+
16894
+ /**
16895
+ * Gets the size of a Unicode `string`.
16896
+ *
16897
+ * @private
16898
+ * @param {string} string The string inspect.
16899
+ * @returns {number} Returns the string size.
16900
+ */
16901
+ function unicodeSize(string) {
16902
+ var result = reUnicode.lastIndex = 0;
16903
+ while (reUnicode.test(string)) {
16904
+ ++result;
16905
+ }
16906
+ return result;
16907
+ }
16908
+
16909
+ module.exports = unicodeSize;
16910
+
16911
+ },{}],201:[function(require,module,exports){
16912
+ /** Used to compose unicode character classes. */
16913
+ var rsAstralRange = '\\ud800-\\udfff',
16914
+ rsComboMarksRange = '\\u0300-\\u036f',
16915
+ reComboHalfMarksRange = '\\ufe20-\\ufe2f',
16916
+ rsComboSymbolsRange = '\\u20d0-\\u20ff',
16917
+ rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,
16918
+ rsVarRange = '\\ufe0e\\ufe0f';
16919
+
16920
+ /** Used to compose unicode capture groups. */
16921
+ var rsAstral = '[' + rsAstralRange + ']',
16922
+ rsCombo = '[' + rsComboRange + ']',
16923
+ rsFitz = '\\ud83c[\\udffb-\\udfff]',
16924
+ rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',
16925
+ rsNonAstral = '[^' + rsAstralRange + ']',
16926
+ rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}',
16927
+ rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]',
16928
+ rsZWJ = '\\u200d';
16929
+
16930
+ /** Used to compose unicode regexes. */
16931
+ var reOptMod = rsModifier + '?',
16932
+ rsOptVar = '[' + rsVarRange + ']?',
16933
+ rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',
16934
+ rsSeq = rsOptVar + reOptMod + rsOptJoin,
16935
+ rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
16936
+
16937
+ /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
16938
+ var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
16939
+
16940
+ /**
16941
+ * Converts a Unicode `string` to an array.
16942
+ *
16943
+ * @private
16944
+ * @param {string} string The string to convert.
16945
+ * @returns {Array} Returns the converted array.
16946
+ */
16947
+ function unicodeToArray(string) {
16948
+ return string.match(reUnicode) || [];
16949
+ }
16950
+
16951
+ module.exports = unicodeToArray;
16952
+
16953
+ },{}],202:[function(require,module,exports){
16684
16954
  /**
16685
16955
  * Creates a function that returns `value`.
16686
16956
  *
@@ -16708,7 +16978,7 @@ function constant(value) {
16708
16978
 
16709
16979
  module.exports = constant;
16710
16980
 
16711
- },{}],192:[function(require,module,exports){
16981
+ },{}],203:[function(require,module,exports){
16712
16982
  var isObject = require('./isObject'),
16713
16983
  now = require('./now'),
16714
16984
  toNumber = require('./toNumber');
@@ -16901,7 +17171,7 @@ function debounce(func, wait, options) {
16901
17171
 
16902
17172
  module.exports = debounce;
16903
17173
 
16904
- },{"./isObject":204,"./now":214,"./toNumber":220}],193:[function(require,module,exports){
17174
+ },{"./isObject":215,"./now":226,"./toNumber":234}],204:[function(require,module,exports){
16905
17175
  /**
16906
17176
  * Performs a
16907
17177
  * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
@@ -16940,7 +17210,7 @@ function eq(value, other) {
16940
17210
 
16941
17211
  module.exports = eq;
16942
17212
 
16943
- },{}],194:[function(require,module,exports){
17213
+ },{}],205:[function(require,module,exports){
16944
17214
  var baseFlatten = require('./_baseFlatten');
16945
17215
 
16946
17216
  /**
@@ -16964,7 +17234,7 @@ function flatten(array) {
16964
17234
 
16965
17235
  module.exports = flatten;
16966
17236
 
16967
- },{"./_baseFlatten":97}],195:[function(require,module,exports){
17237
+ },{"./_baseFlatten":100}],206:[function(require,module,exports){
16968
17238
  var baseHasIn = require('./_baseHasIn'),
16969
17239
  hasPath = require('./_hasPath');
16970
17240
 
@@ -17000,7 +17270,7 @@ function hasIn(object, path) {
17000
17270
 
17001
17271
  module.exports = hasIn;
17002
17272
 
17003
- },{"./_baseHasIn":101,"./_hasPath":145}],196:[function(require,module,exports){
17273
+ },{"./_baseHasIn":104,"./_hasPath":151}],207:[function(require,module,exports){
17004
17274
  /**
17005
17275
  * This method returns the first argument it receives.
17006
17276
  *
@@ -17023,7 +17293,7 @@ function identity(value) {
17023
17293
 
17024
17294
  module.exports = identity;
17025
17295
 
17026
- },{}],197:[function(require,module,exports){
17296
+ },{}],208:[function(require,module,exports){
17027
17297
  var baseIsArguments = require('./_baseIsArguments'),
17028
17298
  isObjectLike = require('./isObjectLike');
17029
17299
 
@@ -17061,7 +17331,7 @@ var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsAr
17061
17331
 
17062
17332
  module.exports = isArguments;
17063
17333
 
17064
- },{"./_baseIsArguments":102,"./isObjectLike":205}],198:[function(require,module,exports){
17334
+ },{"./_baseIsArguments":105,"./isObjectLike":216}],209:[function(require,module,exports){
17065
17335
  /**
17066
17336
  * Checks if `value` is classified as an `Array` object.
17067
17337
  *
@@ -17089,7 +17359,7 @@ var isArray = Array.isArray;
17089
17359
 
17090
17360
  module.exports = isArray;
17091
17361
 
17092
- },{}],199:[function(require,module,exports){
17362
+ },{}],210:[function(require,module,exports){
17093
17363
  var isFunction = require('./isFunction'),
17094
17364
  isLength = require('./isLength');
17095
17365
 
@@ -17124,7 +17394,7 @@ function isArrayLike(value) {
17124
17394
 
17125
17395
  module.exports = isArrayLike;
17126
17396
 
17127
- },{"./isFunction":201,"./isLength":202}],200:[function(require,module,exports){
17397
+ },{"./isFunction":212,"./isLength":213}],211:[function(require,module,exports){
17128
17398
  var root = require('./_root'),
17129
17399
  stubFalse = require('./stubFalse');
17130
17400
 
@@ -17164,7 +17434,7 @@ var isBuffer = nativeIsBuffer || stubFalse;
17164
17434
 
17165
17435
  module.exports = isBuffer;
17166
17436
 
17167
- },{"./_root":179,"./stubFalse":219}],201:[function(require,module,exports){
17437
+ },{"./_root":186,"./stubFalse":231}],212:[function(require,module,exports){
17168
17438
  var baseGetTag = require('./_baseGetTag'),
17169
17439
  isObject = require('./isObject');
17170
17440
 
@@ -17203,7 +17473,7 @@ function isFunction(value) {
17203
17473
 
17204
17474
  module.exports = isFunction;
17205
17475
 
17206
- },{"./_baseGetTag":100,"./isObject":204}],202:[function(require,module,exports){
17476
+ },{"./_baseGetTag":103,"./isObject":215}],213:[function(require,module,exports){
17207
17477
  /** Used as references for various `Number` constants. */
17208
17478
  var MAX_SAFE_INTEGER = 9007199254740991;
17209
17479
 
@@ -17240,7 +17510,7 @@ function isLength(value) {
17240
17510
 
17241
17511
  module.exports = isLength;
17242
17512
 
17243
- },{}],203:[function(require,module,exports){
17513
+ },{}],214:[function(require,module,exports){
17244
17514
  var baseIsMap = require('./_baseIsMap'),
17245
17515
  baseUnary = require('./_baseUnary'),
17246
17516
  nodeUtil = require('./_nodeUtil');
@@ -17269,7 +17539,7 @@ var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;
17269
17539
 
17270
17540
  module.exports = isMap;
17271
17541
 
17272
- },{"./_baseIsMap":103,"./_baseUnary":117,"./_nodeUtil":174}],204:[function(require,module,exports){
17542
+ },{"./_baseIsMap":106,"./_baseUnary":122,"./_nodeUtil":181}],215:[function(require,module,exports){
17273
17543
  /**
17274
17544
  * Checks if `value` is the
17275
17545
  * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
@@ -17302,7 +17572,7 @@ function isObject(value) {
17302
17572
 
17303
17573
  module.exports = isObject;
17304
17574
 
17305
- },{}],205:[function(require,module,exports){
17575
+ },{}],216:[function(require,module,exports){
17306
17576
  /**
17307
17577
  * Checks if `value` is object-like. A value is object-like if it's not `null`
17308
17578
  * and has a `typeof` result of "object".
@@ -17333,7 +17603,7 @@ function isObjectLike(value) {
17333
17603
 
17334
17604
  module.exports = isObjectLike;
17335
17605
 
17336
- },{}],206:[function(require,module,exports){
17606
+ },{}],217:[function(require,module,exports){
17337
17607
  var baseGetTag = require('./_baseGetTag'),
17338
17608
  getPrototype = require('./_getPrototype'),
17339
17609
  isObjectLike = require('./isObjectLike');
@@ -17397,7 +17667,36 @@ function isPlainObject(value) {
17397
17667
 
17398
17668
  module.exports = isPlainObject;
17399
17669
 
17400
- },{"./_baseGetTag":100,"./_getPrototype":139,"./isObjectLike":205}],207:[function(require,module,exports){
17670
+ },{"./_baseGetTag":103,"./_getPrototype":145,"./isObjectLike":216}],218:[function(require,module,exports){
17671
+ var baseIsRegExp = require('./_baseIsRegExp'),
17672
+ baseUnary = require('./_baseUnary'),
17673
+ nodeUtil = require('./_nodeUtil');
17674
+
17675
+ /* Node.js helper references. */
17676
+ var nodeIsRegExp = nodeUtil && nodeUtil.isRegExp;
17677
+
17678
+ /**
17679
+ * Checks if `value` is classified as a `RegExp` object.
17680
+ *
17681
+ * @static
17682
+ * @memberOf _
17683
+ * @since 0.1.0
17684
+ * @category Lang
17685
+ * @param {*} value The value to check.
17686
+ * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.
17687
+ * @example
17688
+ *
17689
+ * _.isRegExp(/abc/);
17690
+ * // => true
17691
+ *
17692
+ * _.isRegExp('/abc/');
17693
+ * // => false
17694
+ */
17695
+ var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;
17696
+
17697
+ module.exports = isRegExp;
17698
+
17699
+ },{"./_baseIsRegExp":108,"./_baseUnary":122,"./_nodeUtil":181}],219:[function(require,module,exports){
17401
17700
  var baseIsSet = require('./_baseIsSet'),
17402
17701
  baseUnary = require('./_baseUnary'),
17403
17702
  nodeUtil = require('./_nodeUtil');
@@ -17426,7 +17725,7 @@ var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;
17426
17725
 
17427
17726
  module.exports = isSet;
17428
17727
 
17429
- },{"./_baseIsSet":105,"./_baseUnary":117,"./_nodeUtil":174}],208:[function(require,module,exports){
17728
+ },{"./_baseIsSet":109,"./_baseUnary":122,"./_nodeUtil":181}],220:[function(require,module,exports){
17430
17729
  var baseGetTag = require('./_baseGetTag'),
17431
17730
  isObjectLike = require('./isObjectLike');
17432
17731
 
@@ -17457,7 +17756,7 @@ function isSymbol(value) {
17457
17756
 
17458
17757
  module.exports = isSymbol;
17459
17758
 
17460
- },{"./_baseGetTag":100,"./isObjectLike":205}],209:[function(require,module,exports){
17759
+ },{"./_baseGetTag":103,"./isObjectLike":216}],221:[function(require,module,exports){
17461
17760
  var baseIsTypedArray = require('./_baseIsTypedArray'),
17462
17761
  baseUnary = require('./_baseUnary'),
17463
17762
  nodeUtil = require('./_nodeUtil');
@@ -17486,7 +17785,7 @@ var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedA
17486
17785
 
17487
17786
  module.exports = isTypedArray;
17488
17787
 
17489
- },{"./_baseIsTypedArray":106,"./_baseUnary":117,"./_nodeUtil":174}],210:[function(require,module,exports){
17788
+ },{"./_baseIsTypedArray":110,"./_baseUnary":122,"./_nodeUtil":181}],222:[function(require,module,exports){
17490
17789
  var arrayLikeKeys = require('./_arrayLikeKeys'),
17491
17790
  baseKeys = require('./_baseKeys'),
17492
17791
  isArrayLike = require('./isArrayLike');
@@ -17525,7 +17824,7 @@ function keys(object) {
17525
17824
 
17526
17825
  module.exports = keys;
17527
17826
 
17528
- },{"./_arrayLikeKeys":87,"./_baseKeys":107,"./isArrayLike":199}],211:[function(require,module,exports){
17827
+ },{"./_arrayLikeKeys":88,"./_baseKeys":111,"./isArrayLike":210}],223:[function(require,module,exports){
17529
17828
  var arrayLikeKeys = require('./_arrayLikeKeys'),
17530
17829
  baseKeysIn = require('./_baseKeysIn'),
17531
17830
  isArrayLike = require('./isArrayLike');
@@ -17559,7 +17858,7 @@ function keysIn(object) {
17559
17858
 
17560
17859
  module.exports = keysIn;
17561
17860
 
17562
- },{"./_arrayLikeKeys":87,"./_baseKeysIn":108,"./isArrayLike":199}],212:[function(require,module,exports){
17861
+ },{"./_arrayLikeKeys":88,"./_baseKeysIn":112,"./isArrayLike":210}],224:[function(require,module,exports){
17563
17862
  /**
17564
17863
  * Gets the last element of `array`.
17565
17864
  *
@@ -17581,7 +17880,7 @@ function last(array) {
17581
17880
 
17582
17881
  module.exports = last;
17583
17882
 
17584
- },{}],213:[function(require,module,exports){
17883
+ },{}],225:[function(require,module,exports){
17585
17884
  var MapCache = require('./_MapCache');
17586
17885
 
17587
17886
  /** Error message constants. */
@@ -17656,7 +17955,7 @@ memoize.Cache = MapCache;
17656
17955
 
17657
17956
  module.exports = memoize;
17658
17957
 
17659
- },{"./_MapCache":77}],214:[function(require,module,exports){
17958
+ },{"./_MapCache":78}],226:[function(require,module,exports){
17660
17959
  var root = require('./_root');
17661
17960
 
17662
17961
  /**
@@ -17681,7 +17980,7 @@ var now = function() {
17681
17980
 
17682
17981
  module.exports = now;
17683
17982
 
17684
- },{"./_root":179}],215:[function(require,module,exports){
17983
+ },{"./_root":186}],227:[function(require,module,exports){
17685
17984
  var arrayMap = require('./_arrayMap'),
17686
17985
  baseClone = require('./_baseClone'),
17687
17986
  baseUnset = require('./_baseUnset'),
@@ -17740,7 +18039,7 @@ var omit = flatRest(function(object, paths) {
17740
18039
 
17741
18040
  module.exports = omit;
17742
18041
 
17743
- },{"./_arrayMap":88,"./_baseClone":95,"./_baseUnset":118,"./_castPath":119,"./_copyObject":127,"./_customOmitClone":131,"./_flatRest":133,"./_getAllKeysIn":136}],216:[function(require,module,exports){
18042
+ },{"./_arrayMap":89,"./_baseClone":98,"./_baseUnset":123,"./_castPath":124,"./_copyObject":133,"./_customOmitClone":137,"./_flatRest":139,"./_getAllKeysIn":142}],228:[function(require,module,exports){
17744
18043
  var basePick = require('./_basePick'),
17745
18044
  flatRest = require('./_flatRest');
17746
18045
 
@@ -17767,7 +18066,7 @@ var pick = flatRest(function(object, paths) {
17767
18066
 
17768
18067
  module.exports = pick;
17769
18068
 
17770
- },{"./_basePick":109,"./_flatRest":133}],217:[function(require,module,exports){
18069
+ },{"./_basePick":113,"./_flatRest":139}],229:[function(require,module,exports){
17771
18070
  var baseSet = require('./_baseSet');
17772
18071
 
17773
18072
  /**
@@ -17804,7 +18103,7 @@ function set(object, path, value) {
17804
18103
 
17805
18104
  module.exports = set;
17806
18105
 
17807
- },{"./_baseSet":111}],218:[function(require,module,exports){
18106
+ },{"./_baseSet":116}],230:[function(require,module,exports){
17808
18107
  /**
17809
18108
  * This method returns a new empty array.
17810
18109
  *
@@ -17829,7 +18128,7 @@ function stubArray() {
17829
18128
 
17830
18129
  module.exports = stubArray;
17831
18130
 
17832
- },{}],219:[function(require,module,exports){
18131
+ },{}],231:[function(require,module,exports){
17833
18132
  /**
17834
18133
  * This method returns `false`.
17835
18134
  *
@@ -17849,7 +18148,89 @@ function stubFalse() {
17849
18148
 
17850
18149
  module.exports = stubFalse;
17851
18150
 
17852
- },{}],220:[function(require,module,exports){
18151
+ },{}],232:[function(require,module,exports){
18152
+ var toNumber = require('./toNumber');
18153
+
18154
+ /** Used as references for various `Number` constants. */
18155
+ var INFINITY = 1 / 0,
18156
+ MAX_INTEGER = 1.7976931348623157e+308;
18157
+
18158
+ /**
18159
+ * Converts `value` to a finite number.
18160
+ *
18161
+ * @static
18162
+ * @memberOf _
18163
+ * @since 4.12.0
18164
+ * @category Lang
18165
+ * @param {*} value The value to convert.
18166
+ * @returns {number} Returns the converted number.
18167
+ * @example
18168
+ *
18169
+ * _.toFinite(3.2);
18170
+ * // => 3.2
18171
+ *
18172
+ * _.toFinite(Number.MIN_VALUE);
18173
+ * // => 5e-324
18174
+ *
18175
+ * _.toFinite(Infinity);
18176
+ * // => 1.7976931348623157e+308
18177
+ *
18178
+ * _.toFinite('3.2');
18179
+ * // => 3.2
18180
+ */
18181
+ function toFinite(value) {
18182
+ if (!value) {
18183
+ return value === 0 ? value : 0;
18184
+ }
18185
+ value = toNumber(value);
18186
+ if (value === INFINITY || value === -INFINITY) {
18187
+ var sign = (value < 0 ? -1 : 1);
18188
+ return sign * MAX_INTEGER;
18189
+ }
18190
+ return value === value ? value : 0;
18191
+ }
18192
+
18193
+ module.exports = toFinite;
18194
+
18195
+ },{"./toNumber":234}],233:[function(require,module,exports){
18196
+ var toFinite = require('./toFinite');
18197
+
18198
+ /**
18199
+ * Converts `value` to an integer.
18200
+ *
18201
+ * **Note:** This method is loosely based on
18202
+ * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).
18203
+ *
18204
+ * @static
18205
+ * @memberOf _
18206
+ * @since 4.0.0
18207
+ * @category Lang
18208
+ * @param {*} value The value to convert.
18209
+ * @returns {number} Returns the converted integer.
18210
+ * @example
18211
+ *
18212
+ * _.toInteger(3.2);
18213
+ * // => 3
18214
+ *
18215
+ * _.toInteger(Number.MIN_VALUE);
18216
+ * // => 0
18217
+ *
18218
+ * _.toInteger(Infinity);
18219
+ * // => 1.7976931348623157e+308
18220
+ *
18221
+ * _.toInteger('3.2');
18222
+ * // => 3
18223
+ */
18224
+ function toInteger(value) {
18225
+ var result = toFinite(value),
18226
+ remainder = result % 1;
18227
+
18228
+ return result === result ? (remainder ? result - remainder : result) : 0;
18229
+ }
18230
+
18231
+ module.exports = toInteger;
18232
+
18233
+ },{"./toFinite":232}],234:[function(require,module,exports){
17853
18234
  var baseTrim = require('./_baseTrim'),
17854
18235
  isObject = require('./isObject'),
17855
18236
  isSymbol = require('./isSymbol');
@@ -17915,7 +18296,7 @@ function toNumber(value) {
17915
18296
 
17916
18297
  module.exports = toNumber;
17917
18298
 
17918
- },{"./_baseTrim":116,"./isObject":204,"./isSymbol":208}],221:[function(require,module,exports){
18299
+ },{"./_baseTrim":121,"./isObject":215,"./isSymbol":220}],235:[function(require,module,exports){
17919
18300
  var baseToString = require('./_baseToString');
17920
18301
 
17921
18302
  /**
@@ -17945,7 +18326,120 @@ function toString(value) {
17945
18326
 
17946
18327
  module.exports = toString;
17947
18328
 
17948
- },{"./_baseToString":115}],222:[function(require,module,exports){
18329
+ },{"./_baseToString":120}],236:[function(require,module,exports){
18330
+ var baseToString = require('./_baseToString'),
18331
+ castSlice = require('./_castSlice'),
18332
+ hasUnicode = require('./_hasUnicode'),
18333
+ isObject = require('./isObject'),
18334
+ isRegExp = require('./isRegExp'),
18335
+ stringSize = require('./_stringSize'),
18336
+ stringToArray = require('./_stringToArray'),
18337
+ toInteger = require('./toInteger'),
18338
+ toString = require('./toString');
18339
+
18340
+ /** Used as default options for `_.truncate`. */
18341
+ var DEFAULT_TRUNC_LENGTH = 30,
18342
+ DEFAULT_TRUNC_OMISSION = '...';
18343
+
18344
+ /** Used to match `RegExp` flags from their coerced string values. */
18345
+ var reFlags = /\w*$/;
18346
+
18347
+ /**
18348
+ * Truncates `string` if it's longer than the given maximum string length.
18349
+ * The last characters of the truncated string are replaced with the omission
18350
+ * string which defaults to "...".
18351
+ *
18352
+ * @static
18353
+ * @memberOf _
18354
+ * @since 4.0.0
18355
+ * @category String
18356
+ * @param {string} [string=''] The string to truncate.
18357
+ * @param {Object} [options={}] The options object.
18358
+ * @param {number} [options.length=30] The maximum string length.
18359
+ * @param {string} [options.omission='...'] The string to indicate text is omitted.
18360
+ * @param {RegExp|string} [options.separator] The separator pattern to truncate to.
18361
+ * @returns {string} Returns the truncated string.
18362
+ * @example
18363
+ *
18364
+ * _.truncate('hi-diddly-ho there, neighborino');
18365
+ * // => 'hi-diddly-ho there, neighbo...'
18366
+ *
18367
+ * _.truncate('hi-diddly-ho there, neighborino', {
18368
+ * 'length': 24,
18369
+ * 'separator': ' '
18370
+ * });
18371
+ * // => 'hi-diddly-ho there,...'
18372
+ *
18373
+ * _.truncate('hi-diddly-ho there, neighborino', {
18374
+ * 'length': 24,
18375
+ * 'separator': /,? +/
18376
+ * });
18377
+ * // => 'hi-diddly-ho there...'
18378
+ *
18379
+ * _.truncate('hi-diddly-ho there, neighborino', {
18380
+ * 'omission': ' [...]'
18381
+ * });
18382
+ * // => 'hi-diddly-ho there, neig [...]'
18383
+ */
18384
+ function truncate(string, options) {
18385
+ var length = DEFAULT_TRUNC_LENGTH,
18386
+ omission = DEFAULT_TRUNC_OMISSION;
18387
+
18388
+ if (isObject(options)) {
18389
+ var separator = 'separator' in options ? options.separator : separator;
18390
+ length = 'length' in options ? toInteger(options.length) : length;
18391
+ omission = 'omission' in options ? baseToString(options.omission) : omission;
18392
+ }
18393
+ string = toString(string);
18394
+
18395
+ var strLength = string.length;
18396
+ if (hasUnicode(string)) {
18397
+ var strSymbols = stringToArray(string);
18398
+ strLength = strSymbols.length;
18399
+ }
18400
+ if (length >= strLength) {
18401
+ return string;
18402
+ }
18403
+ var end = length - stringSize(omission);
18404
+ if (end < 1) {
18405
+ return omission;
18406
+ }
18407
+ var result = strSymbols
18408
+ ? castSlice(strSymbols, 0, end).join('')
18409
+ : string.slice(0, end);
18410
+
18411
+ if (separator === undefined) {
18412
+ return result + omission;
18413
+ }
18414
+ if (strSymbols) {
18415
+ end += (result.length - end);
18416
+ }
18417
+ if (isRegExp(separator)) {
18418
+ if (string.slice(end).search(separator)) {
18419
+ var match,
18420
+ substring = result;
18421
+
18422
+ if (!separator.global) {
18423
+ separator = RegExp(separator.source, toString(reFlags.exec(separator)) + 'g');
18424
+ }
18425
+ separator.lastIndex = 0;
18426
+ while ((match = separator.exec(substring))) {
18427
+ var newEnd = match.index;
18428
+ }
18429
+ result = result.slice(0, newEnd === undefined ? end : newEnd);
18430
+ }
18431
+ } else if (string.indexOf(baseToString(separator), end) != end) {
18432
+ var index = result.lastIndexOf(separator);
18433
+ if (index > -1) {
18434
+ result = result.slice(0, index);
18435
+ }
18436
+ }
18437
+ return result + omission;
18438
+ }
18439
+
18440
+ module.exports = truncate;
18441
+
18442
+ },{"./_baseToString":120,"./_castSlice":125,"./_hasUnicode":152,"./_stringSize":194,"./_stringToArray":195,"./isObject":215,"./isRegExp":218,"./toInteger":233,"./toString":235}],237:[function(require,module,exports){
17949
18443
  var baseUnset = require('./_baseUnset');
17950
18444
 
17951
18445
  /**
@@ -17981,7 +18475,7 @@ function unset(object, path) {
17981
18475
 
17982
18476
  module.exports = unset;
17983
18477
 
17984
- },{"./_baseUnset":118}],223:[function(require,module,exports){
18478
+ },{"./_baseUnset":123}],238:[function(require,module,exports){
17985
18479
  /**
17986
18480
  * Helpers.
17987
18481
  */
@@ -18145,7 +18639,7 @@ function plural(ms, msAbs, n, name) {
18145
18639
  return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');
18146
18640
  }
18147
18641
 
18148
- },{}],224:[function(require,module,exports){
18642
+ },{}],239:[function(require,module,exports){
18149
18643
  // shim for using process in browser
18150
18644
  var process = module.exports = {};
18151
18645
 
@@ -18331,7 +18825,7 @@ process.chdir = function (dir) {
18331
18825
  };
18332
18826
  process.umask = function() { return 0; };
18333
18827
 
18334
- },{}],225:[function(require,module,exports){
18828
+ },{}],240:[function(require,module,exports){
18335
18829
  "use strict";
18336
18830
  /**
18337
18831
  * Initialize backoff timer with `opts`.
@@ -18403,7 +18897,7 @@ Backoff.prototype.setJitter = function (jitter) {
18403
18897
  this.jitter = jitter;
18404
18898
  };
18405
18899
 
18406
- },{}],226:[function(require,module,exports){
18900
+ },{}],241:[function(require,module,exports){
18407
18901
  "use strict";
18408
18902
  var __importDefault = (this && this.__importDefault) || function (mod) {
18409
18903
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -18474,7 +18968,7 @@ Object.defineProperty(exports, "protocol", { enumerable: true, get: function ()
18474
18968
 
18475
18969
  module.exports = lookup;
18476
18970
 
18477
- },{"./manager.js":227,"./socket.js":229,"./url.js":230,"debug":6,"socket.io-parser":232}],227:[function(require,module,exports){
18971
+ },{"./manager.js":242,"./socket.js":244,"./url.js":245,"debug":6,"socket.io-parser":247}],242:[function(require,module,exports){
18478
18972
  "use strict";
18479
18973
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18480
18974
  if (k2 === undefined) k2 = k;
@@ -18879,7 +19373,7 @@ class Manager extends component_emitter_1.Emitter {
18879
19373
  }
18880
19374
  exports.Manager = Manager;
18881
19375
 
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){
19376
+ },{"./contrib/backo2.js":240,"./on.js":243,"./socket.js":244,"@socket.io/component-emitter":2,"debug":6,"engine.io-client":13,"socket.io-parser":247}],243:[function(require,module,exports){
18883
19377
  "use strict";
18884
19378
  Object.defineProperty(exports, "__esModule", { value: true });
18885
19379
  exports.on = void 0;
@@ -18891,7 +19385,7 @@ function on(obj, ev, fn) {
18891
19385
  }
18892
19386
  exports.on = on;
18893
19387
 
18894
- },{}],229:[function(require,module,exports){
19388
+ },{}],244:[function(require,module,exports){
18895
19389
  "use strict";
18896
19390
  var __importDefault = (this && this.__importDefault) || function (mod) {
18897
19391
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -19619,7 +20113,7 @@ class Socket extends component_emitter_1.Emitter {
19619
20113
  }
19620
20114
  exports.Socket = Socket;
19621
20115
 
19622
- },{"./on.js":228,"@socket.io/component-emitter":2,"debug":6,"socket.io-parser":232}],230:[function(require,module,exports){
20116
+ },{"./on.js":243,"@socket.io/component-emitter":2,"debug":6,"socket.io-parser":247}],245:[function(require,module,exports){
19623
20117
  "use strict";
19624
20118
  var __importDefault = (this && this.__importDefault) || function (mod) {
19625
20119
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -19691,7 +20185,7 @@ function url(uri, path = "", loc) {
19691
20185
  }
19692
20186
  exports.url = url;
19693
20187
 
19694
- },{"debug":6,"engine.io-client":13}],231:[function(require,module,exports){
20188
+ },{"debug":6,"engine.io-client":13}],246:[function(require,module,exports){
19695
20189
  "use strict";
19696
20190
  Object.defineProperty(exports, "__esModule", { value: true });
19697
20191
  exports.reconstructPacket = exports.deconstructPacket = void 0;
@@ -19781,7 +20275,7 @@ function _reconstructPacket(data, buffers) {
19781
20275
  return data;
19782
20276
  }
19783
20277
 
19784
- },{"./is-binary.js":233}],232:[function(require,module,exports){
20278
+ },{"./is-binary.js":248}],247:[function(require,module,exports){
19785
20279
  "use strict";
19786
20280
  Object.defineProperty(exports, "__esModule", { value: true });
19787
20281
  exports.Decoder = exports.Encoder = exports.PacketType = exports.protocol = void 0;
@@ -20081,7 +20575,7 @@ class BinaryReconstructor {
20081
20575
  }
20082
20576
  }
20083
20577
 
20084
- },{"./binary.js":231,"./is-binary.js":233,"@socket.io/component-emitter":2,"debug":6}],233:[function(require,module,exports){
20578
+ },{"./binary.js":246,"./is-binary.js":248,"@socket.io/component-emitter":2,"debug":6}],248:[function(require,module,exports){
20085
20579
  "use strict";
20086
20580
  Object.defineProperty(exports, "__esModule", { value: true });
20087
20581
  exports.hasBinary = exports.isBinary = void 0;
@@ -20138,11 +20632,11 @@ function hasBinary(obj, toJSON) {
20138
20632
  }
20139
20633
  exports.hasBinary = hasBinary;
20140
20634
 
20141
- },{}],234:[function(require,module,exports){
20635
+ },{}],249:[function(require,module,exports){
20142
20636
  "use strict";
20143
20637
  Object.defineProperty(exports, "__esModule", { value: true });
20144
20638
  exports.CurtainComponent = void 0;
20145
- const models_1 = require("../models");
20639
+ const models_1 = require("../../models");
20146
20640
  class CurtainComponent extends models_1.Component {
20147
20641
  constructor(options = {}) {
20148
20642
  super('<div class="curtain hidden"></div>');
@@ -20157,7 +20651,7 @@ class CurtainComponent extends models_1.Component {
20157
20651
  }
20158
20652
  exports.CurtainComponent = CurtainComponent;
20159
20653
 
20160
- },{"../models":264}],235:[function(require,module,exports){
20654
+ },{"../../models":279}],250:[function(require,module,exports){
20161
20655
  "use strict";
20162
20656
  var __importDefault = (this && this.__importDefault) || function (mod) {
20163
20657
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -20175,7 +20669,7 @@ class EmptyComponent extends models_1.Component {
20175
20669
  }
20176
20670
  exports.EmptyComponent = EmptyComponent;
20177
20671
 
20178
- },{"../../models":264,"./template.hbs":236,"handlebars":60}],236:[function(require,module,exports){
20672
+ },{"../../models":279,"./template.hbs":251,"handlebars":61}],251:[function(require,module,exports){
20179
20673
  module.exports = `
20180
20674
  <div class="empty">
20181
20675
  <i class="fas fa-hourglass-start"></i>
@@ -20183,17 +20677,17 @@ module.exports = `
20183
20677
  </div>
20184
20678
  `
20185
20679
 
20186
- },{}],237:[function(require,module,exports){
20680
+ },{}],252:[function(require,module,exports){
20187
20681
  "use strict";
20188
20682
  var __importDefault = (this && this.__importDefault) || function (mod) {
20189
20683
  return (mod && mod.__esModule) ? mod : { "default": mod };
20190
20684
  };
20191
20685
  Object.defineProperty(exports, "__esModule", { value: true });
20192
20686
  exports.ExpectationComponent = void 0;
20193
- const json_formatter_1 = __importDefault(require("../../../../../../json-formatter"));
20194
- const handlebars_1 = __importDefault(require("handlebars"));
20195
20687
  const pick_1 = __importDefault(require("lodash/pick"));
20688
+ const handlebars_1 = __importDefault(require("handlebars"));
20196
20689
  const models_1 = require("../../models");
20690
+ const viewer_component_1 = require("../viewer.component");
20197
20691
  const context_1 = __importDefault(require("../../context"));
20198
20692
  const template = require('./template.hbs');
20199
20693
  const render = handlebars_1.default.compile(template);
@@ -20201,34 +20695,29 @@ class ExpectationComponent extends models_1.Component {
20201
20695
  constructor(data) {
20202
20696
  super();
20203
20697
  this.data = data;
20204
- this.isExpanded = false;
20205
- this.refresh(data);
20698
+ this.viewer = viewer_component_1.ViewerComponent.build({ depth: 3 }).hide();
20699
+ this.refresh();
20206
20700
  }
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 });
20701
+ provide(data) {
20702
+ return Object.assign(this, { data });
20230
20703
  }
20231
- match(query) {
20704
+ refresh() {
20705
+ this.replace(render(this.data)).append(this.viewer);
20706
+ this.viewer.provide((0, pick_1.default)(this.data, ['id', 'type', 'transports', 'schema']));
20707
+ models_1.Button
20708
+ .build(this.element.querySelector('button.activity'))
20709
+ .handle(() => context_1.default.services.io.exec('expectations:update', {
20710
+ id: this.data.id,
20711
+ set: { isEnabled: !this.data.isEnabled },
20712
+ }));
20713
+ this.element.querySelector('div.meta').addEventListener('click', (event) => event.composedPath().some((element) => element?.classList?.contains('meta'))
20714
+ ? event.target.nodeName !== 'BUTTON'
20715
+ ? this.viewer.isHidden ? this.viewer.show() : this.viewer.hide()
20716
+ : null
20717
+ : null);
20718
+ return this;
20719
+ }
20720
+ match(query) {
20232
20721
  return [
20233
20722
  this.data.group,
20234
20723
  this.data.name,
@@ -20243,71 +20732,131 @@ class ExpectationComponent extends models_1.Component {
20243
20732
  }
20244
20733
  exports.ExpectationComponent = ExpectationComponent;
20245
20734
 
20246
- },{"../../../../../../json-formatter":1,"../../context":253,"../../models":264,"./template.hbs":238,"handlebars":60,"lodash/pick":216}],238:[function(require,module,exports){
20735
+ },{"../../context":268,"../../models":279,"../viewer.component":266,"./template.hbs":253,"handlebars":61,"lodash/pick":228}],253:[function(require,module,exports){
20247
20736
  module.exports = `
20248
20737
  <div class="container expectation" id="{{id}}">
20249
20738
  <div class="meta">{{> expectationMeta this}}</div>
20250
- <pre class="panel hidden"></pre>
20251
20739
  </div>
20252
20740
  `
20253
20741
 
20254
- },{}],239:[function(require,module,exports){
20742
+ },{}],254:[function(require,module,exports){
20743
+ "use strict";
20744
+ var __importDefault = (this && this.__importDefault) || function (mod) {
20745
+ return (mod && mod.__esModule) ? mod : { "default": mod };
20746
+ };
20747
+ Object.defineProperty(exports, "__esModule", { value: true });
20748
+ exports.HeaderComponent = void 0;
20749
+ const events_1 = __importDefault(require("events"));
20750
+ const set_1 = __importDefault(require("lodash/set"));
20751
+ const handlebars_1 = __importDefault(require("handlebars"));
20752
+ const models_1 = require("../../models");
20753
+ const template = require('./template.hbs');
20754
+ const render = handlebars_1.default.compile(template);
20755
+ class HeaderComponent extends models_1.Component {
20756
+ constructor(tabs) {
20757
+ super(render({
20758
+ tabs: tabs.map((tab) => tab.type === 'section'
20759
+ ? Object.assign(tab, { id: tab.entity.id, isSelected: !tab.entity.isHidden })
20760
+ : tab),
20761
+ }));
20762
+ this.tabs = tabs;
20763
+ this.events = new events_1.default();
20764
+ this.sections = this.tabs
20765
+ .map((tab) => tab.type === 'section' ? tab.entity : null)
20766
+ .filter(Boolean)
20767
+ .reduce((acc, section) => (0, set_1.default)(acc, section.id, section), {});
20768
+ this.element.querySelector('div#tabs').addEventListener('click', (source) => {
20769
+ const event = source;
20770
+ if (event.target?.nodeName !== 'BUTTON' || !this.sections[event.target.id]) {
20771
+ return null;
20772
+ }
20773
+ event.target.parentNode?.querySelectorAll('button.checked').forEach((element) => element.classList.remove('checked'));
20774
+ event.target.classList.add('checked');
20775
+ this.emit('select', this.sections[event.target.id]);
20776
+ });
20777
+ }
20778
+ on(event, handler) {
20779
+ this.events.on(event, handler);
20780
+ return this;
20781
+ }
20782
+ once(event, handler) {
20783
+ this.events.once(event, handler);
20784
+ return this;
20785
+ }
20786
+ emit(event, ...args) {
20787
+ this.events.emit(event, ...args);
20788
+ return this;
20789
+ }
20790
+ static build(tabs) {
20791
+ return new HeaderComponent(tabs);
20792
+ }
20793
+ }
20794
+ exports.HeaderComponent = HeaderComponent;
20795
+
20796
+ },{"../../models":279,"./template.hbs":255,"events":27,"handlebars":61,"lodash/set":229}],255:[function(require,module,exports){
20797
+ module.exports = `
20798
+ <header>
20799
+ <div id="tabs">
20800
+ {{#each tabs}}
20801
+ {{#compare type 'eq' 'separator'}}<hr>{{/compare}}
20802
+
20803
+ {{#compare type 'eq' 'section'}}
20804
+ <button class="{{#unless entity.meta.name}}icon-only{{/unless}} {{#if isSelected}}checked{{/if}}" id="{{id}}">
20805
+ <i class="{{entity.meta.icon}}"></i>{{entity.meta.name}}
20806
+ </button>
20807
+ {{/compare}}
20808
+ {{/each}}
20809
+ </div>
20810
+ </header>
20811
+ `
20812
+
20813
+ },{}],256:[function(require,module,exports){
20255
20814
  "use strict";
20256
20815
  var __importDefault = (this && this.__importDefault) || function (mod) {
20257
20816
  return (mod && mod.__esModule) ? mod : { "default": mod };
20258
20817
  };
20259
20818
  Object.defineProperty(exports, "__esModule", { value: true });
20260
20819
  exports.HistoryComponent = void 0;
20261
- const json_formatter_1 = __importDefault(require("../../../../../../json-formatter"));
20262
20820
  const handlebars_1 = __importDefault(require("handlebars"));
20821
+ const viewer_component_1 = require("../viewer.component");
20263
20822
  const models_1 = require("../../models");
20264
- const context_1 = __importDefault(require("../../context"));
20265
20823
  const template = require('./template.hbs');
20266
20824
  const render = handlebars_1.default.compile(template);
20267
20825
  class HistoryComponent extends models_1.Component {
20268
20826
  constructor(data) {
20269
20827
  super();
20270
20828
  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 && {
20829
+ this.viewer = viewer_component_1.ViewerComponent.build({ depth: 2 }).hide();
20830
+ this.refresh();
20831
+ }
20832
+ provide(data) {
20833
+ return Object.assign(this, { data });
20834
+ }
20835
+ refresh() {
20836
+ this.replace(render(this.data)).append(this.viewer);
20837
+ this.viewer.provide({
20838
+ event: this.data.snapshot.event,
20839
+ ...(Object.keys(this.data.snapshot.flags).length && { flags: this.data.snapshot.flags }),
20840
+ ...(this.data.expectation && {
20281
20841
  expectation: {
20282
- id: data.expectation.id,
20283
- group: data.expectation.group,
20284
- ...(data.expectation.schema.forward && { forward: data.expectation.schema.forward }),
20842
+ id: this.data.expectation.id,
20843
+ group: this.data.expectation.group,
20844
+ ...(this.data.expectation.schema.forward && { forward: this.data.expectation.schema.forward }),
20285
20845
  },
20286
20846
  }),
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) {
20306
- return null;
20307
- }
20308
- pre.classList.toggle('hidden');
20309
- this.isExpanded = !this.isExpanded;
20847
+ ...(this.data.snapshot.cache?.isEnabled && { cache: this.data.snapshot.cache }),
20848
+ ...(this.data.snapshot.seed && { seed: this.data.snapshot.seed }),
20849
+ ...(this.data.snapshot.container && { container: this.data.snapshot.container }),
20850
+ incoming: this.data.snapshot.incoming,
20851
+ ...(this.data.snapshot.error && { error: this.data.snapshot.error }),
20852
+ ...(this.data.status === 'completed' && { outgoing: this.data.snapshot.outgoing }),
20853
+ ...(this.data.snapshot.forwarded && { forwarded: this.data.snapshot.forwarded }),
20854
+ ...(this.data.snapshot.messages?.length && { messages: this.data.snapshot.messages }),
20310
20855
  });
20856
+ this.element.querySelector('div.meta').addEventListener('click', (event) => event.composedPath().some((element) => element?.classList?.contains('meta'))
20857
+ ? this.viewer.isHidden ? this.viewer.show() : this.viewer.hide()
20858
+ : null);
20859
+ return this;
20311
20860
  }
20312
20861
  match(query) {
20313
20862
  const light = [
@@ -20336,12 +20885,12 @@ class HistoryComponent extends models_1.Component {
20336
20885
  }
20337
20886
  exports.HistoryComponent = HistoryComponent;
20338
20887
 
20339
- },{"../../../../../../json-formatter":1,"../../context":253,"../../models":264,"./template.hbs":240,"handlebars":60}],240:[function(require,module,exports){
20888
+ },{"../../models":279,"../viewer.component":266,"./template.hbs":257,"handlebars":61}],257:[function(require,module,exports){
20340
20889
  module.exports = `
20341
20890
  <div class="container history" id="{{id}}">
20342
20891
  <div class="meta">
20343
20892
  <div class="segment">
20344
- <span class="time">{{#toLocaleTime meta.requestedAt}}{{/toLocaleTime}}</span>
20893
+ <span class="time">{{#toLocaleTime timestamp}}{{/toLocaleTime}}</span>
20345
20894
 
20346
20895
  {{#if snapshot.error}}
20347
20896
  <span class="error">
@@ -20360,21 +20909,22 @@ module.exports = `
20360
20909
  {{#compare snapshot.outgoing.status 'lt' 400}}green{{/compare}}
20361
20910
  {{#compare snapshot.outgoing.status 'gte' 400}}red{{/compare}}
20362
20911
  {{/compare}}
20363
- ">{{snapshot.outgoing.status}}</span>
20912
+ "><b>{{snapshot.outgoing.status}}</b> {{toSeconds duration}}s</span>
20364
20913
  {{/compare}}
20365
20914
 
20366
20915
  <span class="transport">{{snapshot.transport}}</span>
20367
- <span class="method">{{snapshot.incoming.method}}</span>
20368
- <span class="path">{{snapshot.incoming.path}}</span>
20916
+ <span class="method" style="color: {{toColor snapshot.incoming.method}};">{{snapshot.incoming.method}}</span>
20917
+ <span class="path">{{truncate snapshot.incoming.path 45}}</span>
20918
+
20919
+ {{#if snapshot.seed}}<span class="seed">{{snapshot.seed}}</span>{{/if}}
20369
20920
  </div>
20370
20921
 
20371
20922
  <span class="arrow"><i class="fas fa-chevron-right"></i></span>
20372
20923
 
20373
20924
  {{#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>
20925
+ {{>expectationMeta expectation format='short' isCached=snapshot.forwarded.isCached}}
20376
20926
  {{else}}
20377
- <span class="handled-with red">Nowhere</span>
20927
+ <div class="segment"><span class="handled-with red">Nowhere</span></div>
20378
20928
  {{/if}}
20379
20929
  </div>
20380
20930
 
@@ -20397,12 +20947,10 @@ module.exports = `
20397
20947
  {{/each}}
20398
20948
  </div>
20399
20949
  {{/if}} --}}
20400
-
20401
- <pre class="panel hidden"></pre>
20402
20950
  </div>
20403
20951
  `
20404
20952
 
20405
- },{}],241:[function(require,module,exports){
20953
+ },{}],258:[function(require,module,exports){
20406
20954
  "use strict";
20407
20955
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
20408
20956
  if (k2 === undefined) k2 = k;
@@ -20426,13 +20974,14 @@ __exportStar(require("./curtain.component"), exports);
20426
20974
  __exportStar(require("./loader.component"), exports);
20427
20975
  __exportStar(require("./popups.component"), exports);
20428
20976
  __exportStar(require("./search.component"), exports);
20977
+ __exportStar(require("./header.component"), exports);
20429
20978
  __exportStar(require("./empty.component"), exports);
20430
20979
 
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){
20980
+ },{"./curtain.component":249,"./empty.component":250,"./expectation.component":252,"./header.component":254,"./history.component":256,"./loader.component":259,"./popups.component":260,"./search.component":262,"./settings.component":264}],259:[function(require,module,exports){
20432
20981
  "use strict";
20433
20982
  Object.defineProperty(exports, "__esModule", { value: true });
20434
20983
  exports.LoaderComponent = void 0;
20435
- const curtain_component_1 = require("./curtain.component");
20984
+ const curtain_component_1 = require("../curtain.component");
20436
20985
  class LoaderComponent extends curtain_component_1.CurtainComponent {
20437
20986
  constructor() {
20438
20987
  super({ isPreventedToManualClose: true });
@@ -20444,7 +20993,7 @@ class LoaderComponent extends curtain_component_1.CurtainComponent {
20444
20993
  }
20445
20994
  exports.LoaderComponent = LoaderComponent;
20446
20995
 
20447
- },{"./curtain.component":234}],243:[function(require,module,exports){
20996
+ },{"../curtain.component":249}],260:[function(require,module,exports){
20448
20997
  "use strict";
20449
20998
  var __importDefault = (this && this.__importDefault) || function (mod) {
20450
20999
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -20461,9 +21010,9 @@ class PopupsComponent extends models_1.Component {
20461
21010
  this.element.classList.add('popups');
20462
21011
  }
20463
21012
  push(message, options = {}) {
20464
- const popup = this.compileHtmlStringToElement(render({ message, ...options }));
21013
+ const popup = this.compileHtmlStringToElement(render({ message, level: options.level ?? 'info' }));
20465
21014
  this.element.prepend(popup);
20466
- setTimeout(() => popup.remove(), 1000);
21015
+ setTimeout(() => popup.remove(), 3000);
20467
21016
  }
20468
21017
  static build() {
20469
21018
  return new PopupsComponent();
@@ -20471,15 +21020,18 @@ class PopupsComponent extends models_1.Component {
20471
21020
  }
20472
21021
  exports.PopupsComponent = PopupsComponent;
20473
21022
 
20474
- },{"../../models":264,"./template.hbs":244,"handlebars":60}],244:[function(require,module,exports){
21023
+ },{"../../models":279,"./template.hbs":261,"handlebars":61}],261:[function(require,module,exports){
20475
21024
  module.exports = `
20476
21025
  <div class="popup-message {{level}}">
20477
- <i class="{{icon}}"></i>
21026
+ {{#compare level 'eq' 'info'}}<i class="fas fa-check"></i>{{/compare}}
21027
+ {{#compare level 'eq' 'warning'}}<i class="fas fa-exclamation-triangle"></i>{{/compare}}
21028
+ {{#compare level 'eq' 'error'}}<i class="fas fa-times"></i>{{/compare}}
21029
+
20478
21030
  <span>{{message}}</span>
20479
21031
  </div>
20480
21032
  `
20481
21033
 
20482
- },{}],245:[function(require,module,exports){
21034
+ },{}],262:[function(require,module,exports){
20483
21035
  "use strict";
20484
21036
  var __importDefault = (this && this.__importDefault) || function (mod) {
20485
21037
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -20528,7 +21080,7 @@ class SearchComponent extends models_1.Component {
20528
21080
  }
20529
21081
  exports.SearchComponent = SearchComponent;
20530
21082
 
20531
- },{"../../models":264,"./template.hbs":246,"events":27,"handlebars":60,"lodash/debounce":192}],246:[function(require,module,exports){
21083
+ },{"../../models":279,"./template.hbs":263,"events":27,"handlebars":61,"lodash/debounce":203}],263:[function(require,module,exports){
20532
21084
  module.exports = `
20533
21085
  <div class="search">
20534
21086
  <i class="fas fa-search"></i>
@@ -20537,7 +21089,7 @@ module.exports = `
20537
21089
  </div>
20538
21090
  `
20539
21091
 
20540
- },{}],247:[function(require,module,exports){
21092
+ },{}],264:[function(require,module,exports){
20541
21093
  "use strict";
20542
21094
  var __importDefault = (this && this.__importDefault) || function (mod) {
20543
21095
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -20601,7 +21153,7 @@ class SettingsComponent extends models_1.Component {
20601
21153
  }
20602
21154
  exports.SettingsComponent = SettingsComponent;
20603
21155
 
20604
- },{"../../../../utils/common":266,"../../context":253,"../../models":264,"./template.hbs":248,"handlebars":60}],248:[function(require,module,exports){
21156
+ },{"../../../../utils/common":291,"../../context":268,"../../models":279,"./template.hbs":265,"handlebars":61}],265:[function(require,module,exports){
20605
21157
  module.exports = `
20606
21158
  <div class="settings">
20607
21159
  <div id="groups-filter" class="container">
@@ -20611,7 +21163,7 @@ module.exports = `
20611
21163
  <button id="all" class="{{#if groups.all.isEnabled}}checked{{/if}}">ALL</button>
20612
21164
 
20613
21165
  {{#each groups.segmented}}
20614
- <button id="{{name}}" class="{{#if isEnabled}}checked{{/if}}">{{name}}</button>
21166
+ <button id="{{name}}" class="{{#if isEnabled}}checked{{/if}}" style="color: {{toColor name}};">{{name}}</button>
20615
21167
  {{/each}}
20616
21168
  </div>
20617
21169
  </div>
@@ -20619,201 +21171,45 @@ module.exports = `
20619
21171
  </div>
20620
21172
  `
20621
21173
 
20622
- },{}],249:[function(require,module,exports){
21174
+ },{}],266:[function(require,module,exports){
20623
21175
  "use strict";
20624
21176
  var __importDefault = (this && this.__importDefault) || function (mod) {
20625
21177
  return (mod && mod.__esModule) ? mod : { "default": mod };
20626
21178
  };
20627
21179
  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));
21180
+ exports.ViewerComponent = void 0;
21181
+ const json_formatter_1 = __importDefault(require("../../../../../../../packages/json-formatter"));
21182
+ const handlebars_1 = __importDefault(require("handlebars"));
21183
+ const models_1 = require("../../models");
21184
+ const context_1 = __importDefault(require("../../context"));
21185
+ const template = require('./template.hbs');
21186
+ const render = handlebars_1.default.compile(template);
21187
+ class ViewerComponent extends models_1.Component {
21188
+ constructor(options) {
21189
+ super(render({}));
21190
+ this.options = options;
21191
+ this.instance = new json_formatter_1.default({}, this.options?.depth ?? 3, {
21192
+ theme: 'custom',
21193
+ afterCopyHandler: () => context_1.default.shared.popups.push('Copied!'),
21194
+ });
21195
+ this.provide({});
20649
21196
  }
20650
- if (state.search) {
20651
- filtred = filtred.filter((expectation) => expectation.match(state.search));
21197
+ provide(payload) {
21198
+ this.instance.json = payload;
21199
+ return this.clear().append(this.instance.render());
20652
21200
  }
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));
20728
- }
20729
- if (state.search) {
20730
- filtred = filtred.filter((history) => history.match(state.search));
21201
+ static build(options) {
21202
+ return new ViewerComponent(options);
20731
21203
  }
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
- });
21204
+ }
21205
+ exports.ViewerComponent = ViewerComponent;
20780
21206
 
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
- });
21207
+ },{"../../../../../../../packages/json-formatter":1,"../../context":268,"../../models":279,"./template.hbs":267,"handlebars":61}],267:[function(require,module,exports){
21208
+ module.exports = `
21209
+ <div class="viewer container"></div>
21210
+ `
20815
21211
 
20816
- },{"../context":253,"../models":264}],253:[function(require,module,exports){
21212
+ },{}],268:[function(require,module,exports){
20817
21213
  "use strict";
20818
21214
  Object.defineProperty(exports, "__esModule", { value: true });
20819
21215
  const socket_io_client_1 = require("socket.io-client");
@@ -20853,11 +21249,16 @@ class Context {
20853
21249
  }
20854
21250
  exports.default = new Context();
20855
21251
 
20856
- },{"../../utils/common":266,"./models":264,"socket.io-client":226}],254:[function(require,module,exports){
21252
+ },{"../../utils/common":291,"./models":279,"socket.io-client":241}],269:[function(require,module,exports){
20857
21253
  "use strict";
21254
+ var __importDefault = (this && this.__importDefault) || function (mod) {
21255
+ return (mod && mod.__esModule) ? mod : { "default": mod };
21256
+ };
20858
21257
  Object.defineProperty(exports, "__esModule", { value: true });
20859
- exports.toLocaleTime = exports.compare = void 0;
21258
+ exports.toColor = exports.toSeconds = exports.toLocaleTime = exports.truncate = exports.compare = void 0;
21259
+ const truncate_1 = __importDefault(require("lodash/truncate"));
20860
21260
  const utils_1 = require("./utils");
21261
+ const utils_2 = require("../utils");
20861
21262
  exports.compare = (0, utils_1.buildHandlebarsHelper)((context) => (arg1, operator, arg2, { fn, inverse }) => {
20862
21263
  const check = () => {
20863
21264
  switch (operator) {
@@ -20873,9 +21274,12 @@ exports.compare = (0, utils_1.buildHandlebarsHelper)((context) => (arg1, operato
20873
21274
  const result = check();
20874
21275
  return result ? fn ? fn(context) : inverse ? inverse(context) : result : null;
20875
21276
  });
21277
+ exports.truncate = (0, utils_1.buildHandlebarsHelper)(() => (text, length) => (0, truncate_1.default)(text, { length }));
20876
21278
  exports.toLocaleTime = (0, utils_1.buildHandlebarsHelper)(() => (timestamp) => new Date(timestamp).toLocaleTimeString());
21279
+ exports.toSeconds = (0, utils_1.buildHandlebarsHelper)(() => (ms) => (ms / 1000).toFixed(3));
21280
+ exports.toColor = (0, utils_1.buildHandlebarsHelper)(() => (text) => (0, utils_2.calculateColor)(text));
20877
21281
 
20878
- },{"./utils":258}],255:[function(require,module,exports){
21282
+ },{"../utils":290,"./utils":273,"lodash/truncate":236}],270:[function(require,module,exports){
20879
21283
  "use strict";
20880
21284
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
20881
21285
  if (k2 === undefined) k2 = k;
@@ -20924,59 +21328,68 @@ exports.default = {
20924
21328
  },
20925
21329
  };
20926
21330
 
20927
- },{"./helpers":254,"./partials":257,"handlebars":60}],256:[function(require,module,exports){
21331
+ },{"./helpers":269,"./partials":272,"handlebars":61}],271:[function(require,module,exports){
20928
21332
  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>
21333
+ <div class="segment">
21334
+ {{#compare format 'neq' 'short'}}
21335
+ <button class="activity">
21336
+ {{#if isEnabled}}
21337
+ <i class="fas fa-plug"></i>
21338
+ {{else}}
21339
+ <i class="fas fa-power-off"></i>
21340
+ {{/if}}
21341
+ </button>
20937
21342
 
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}}
21343
+ <span class="calls-count {{#compare meta.executionsCount 'gt' 0}}active{{/compare}}">
21344
+ <i class="fas fa-undo-alt"></i>{{meta.executionsCount}}
21345
+ </span>
21346
+ {{/compare}}
20942
21347
 
20943
- <span class="name"><b>{{group}}</b> {{name}}</span>
21348
+ <span class="name"><b style="color: {{toColor group}};">{{group}}</b> {{name}}</span>
21349
+ </div>
20944
21350
 
20945
21351
  {{#compare format 'neq' 'short'}}
20946
21352
  {{#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
21353
 
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}}
21354
+ <div class="segment">
21355
+ {{#each transports}}<span class="transport">{{this}}</span>{{/each}}
21356
+
21357
+ {{#each meta.tags}}
21358
+ {{#compare @index 'lte' 5}}
21359
+ {{#if (compare location 'eq' 'outgoing.status')}}
21360
+ <span class="status
21361
+ {{#compare value 'lt' 400}}green{{/compare}}
21362
+ {{#compare value 'gte' 400}}red{{/compare}}
21363
+ "><b>{{value}}</b></span>
21364
+ {{else if (compare location 'eq' 'method')}}
21365
+ <span class="method" style="color: {{toColor value}};">{{value}}</span>
21366
+ {{else}}
21367
+ <span class="{{location}}">{{truncate value 45}}</span>
21368
+ {{/if}}
21369
+ {{/compare}}
21370
+ {{/each}}
21371
+ </div>
20961
21372
  {{/compare}}
20962
21373
 
20963
21374
  {{#with schema.forward}}
20964
21375
  <span class="arrow"><i class="fas fa-chevron-right"></i></span>
20965
21376
 
20966
- {{#if baseUrl}}<span class="forward">{{baseUrl}}</span>{{/if}}
20967
- {{#if url}}<span class="forward">{{url}}</span>{{/if}}
21377
+ <div class="segment">
21378
+ {{#if baseUrl}}<span class="forward">{{truncate baseUrl 45}}</span>{{/if}}
21379
+ {{#if url}}<span class="forward">{{truncate url 45}}</span>{{/if}}
20968
21380
 
20969
- {{#if ../isCached}}<span class="cache"><i class="fas fa-database"></i></span>{{/if}}
21381
+ {{#if ../isCached}}<span class="cache"><i class="fas fa-database"></i></span>{{/if}}
21382
+ </div>
20970
21383
  {{/with}}
20971
21384
  `
20972
21385
 
20973
- },{}],257:[function(require,module,exports){
21386
+ },{}],272:[function(require,module,exports){
20974
21387
  "use strict";
20975
21388
  Object.defineProperty(exports, "__esModule", { value: true });
20976
21389
  exports.expectationMeta = void 0;
20977
21390
  exports.expectationMeta = require('./expectation-meta.hbs');
20978
21391
 
20979
- },{"./expectation-meta.hbs":256}],258:[function(require,module,exports){
21392
+ },{"./expectation-meta.hbs":271}],273:[function(require,module,exports){
20980
21393
  "use strict";
20981
21394
  Object.defineProperty(exports, "__esModule", { value: true });
20982
21395
  exports.buildHandlebarsHelper = void 0;
@@ -20987,7 +21400,7 @@ const buildHandlebarsHelper = (handler) => {
20987
21400
  };
20988
21401
  exports.buildHandlebarsHelper = buildHandlebarsHelper;
20989
21402
 
20990
- },{}],259:[function(require,module,exports){
21403
+ },{}],274:[function(require,module,exports){
20991
21404
  "use strict";
20992
21405
  Object.defineProperty(exports, "__esModule", { value: true });
20993
21406
  exports.Button = void 0;
@@ -20997,7 +21410,7 @@ class Button {
20997
21410
  this.handlers = [];
20998
21411
  element.addEventListener('click', (event) => this.trigger(event));
20999
21412
  }
21000
- use(handler) {
21413
+ handle(handler) {
21001
21414
  this.handlers.push(async (event) => {
21002
21415
  this.element.classList.add('processed');
21003
21416
  try {
@@ -21020,20 +21433,48 @@ class Button {
21020
21433
  }
21021
21434
  exports.Button = Button;
21022
21435
 
21023
- },{}],260:[function(require,module,exports){
21436
+ },{}],275:[function(require,module,exports){
21437
+ "use strict";
21438
+ Object.defineProperty(exports, "__esModule", { value: true });
21439
+ exports.ClientStorage = void 0;
21440
+ class ClientStorage {
21441
+ constructor(key) {
21442
+ this.key = key;
21443
+ }
21444
+ extract() {
21445
+ return JSON.parse(localStorage.getItem(this.key) ?? 'null');
21446
+ }
21447
+ store(value) {
21448
+ localStorage.setItem(this.key, JSON.stringify(value));
21449
+ return this;
21450
+ }
21451
+ clear() {
21452
+ localStorage.removeItem(this.key);
21453
+ return this;
21454
+ }
21455
+ static build(key) {
21456
+ return new ClientStorage(key);
21457
+ }
21458
+ }
21459
+ exports.ClientStorage = ClientStorage;
21460
+
21461
+ },{}],276:[function(require,module,exports){
21024
21462
  "use strict";
21025
21463
  Object.defineProperty(exports, "__esModule", { value: true });
21026
21464
  exports.Component = void 0;
21027
21465
  class Component {
21028
- constructor(element) {
21466
+ constructor(predicate) {
21029
21467
  this.element = document.createElement('div');
21030
- if (element) {
21031
- this.element = typeof element === 'string' ? this.compileHtmlStringToElement(element) : element;
21468
+ if (predicate) {
21469
+ this.element = typeof predicate === 'string' ? this.compileHtmlStringToElement(predicate) : predicate;
21032
21470
  }
21033
21471
  }
21034
21472
  get isHidden() {
21035
21473
  return this.element.classList.contains('hidden');
21036
21474
  }
21475
+ get id() {
21476
+ return this.element.id;
21477
+ }
21037
21478
  assignId(id) {
21038
21479
  this.element.id = id;
21039
21480
  return this;
@@ -21046,22 +21487,34 @@ class Component {
21046
21487
  this.element.classList.add('hidden');
21047
21488
  return this;
21048
21489
  }
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);
21490
+ append(predicate) {
21491
+ this.element.append(predicate instanceof Component
21492
+ ? predicate.element
21493
+ : typeof predicate === 'string'
21494
+ ? this.compileHtmlStringToElement(predicate)
21495
+ : predicate);
21055
21496
  return this;
21056
21497
  }
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);
21498
+ prepend(predicate) {
21499
+ this.element.prepend(predicate instanceof Component
21500
+ ? predicate.element
21501
+ : typeof predicate === 'string'
21502
+ ? this.compileHtmlStringToElement(predicate)
21503
+ : predicate);
21063
21504
  return this;
21064
21505
  }
21506
+ replace(predicate) {
21507
+ const element = predicate instanceof Component
21508
+ ? predicate.element
21509
+ : typeof predicate === 'string'
21510
+ ? this.compileHtmlStringToElement(predicate)
21511
+ : predicate;
21512
+ this.element.after(element);
21513
+ if (this.isHidden) {
21514
+ element.classList.add('hidden');
21515
+ }
21516
+ return Object.assign(this.delete(), { element });
21517
+ }
21065
21518
  clear() {
21066
21519
  this.element.innerHTML = '';
21067
21520
  return this;
@@ -21076,53 +21529,7 @@ class Component {
21076
21529
  }
21077
21530
  exports.Component = Component;
21078
21531
 
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){
21532
+ },{}],277:[function(require,module,exports){
21126
21533
  "use strict";
21127
21534
  var __importDefault = (this && this.__importDefault) || function (mod) {
21128
21535
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -21131,24 +21538,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
21131
21538
  exports.DynamicStorage = void 0;
21132
21539
  const set_1 = __importDefault(require("lodash/set"));
21133
21540
  const utils_1 = require("../utils");
21541
+ const client_storage_1 = require("./client-storage");
21134
21542
  const form_1 = require("./form");
21135
21543
  class DynamicStorage {
21136
21544
  constructor(key, element) {
21137
21545
  this.key = key;
21138
21546
  this.element = element;
21139
21547
  this.form = form_1.Form.build(this.element);
21548
+ this.client = client_storage_1.ClientStorage.build(this.key);
21140
21549
  }
21141
21550
  sync() {
21142
- const stored = JSON.parse(localStorage.getItem(this.key) ?? '[]');
21551
+ const stored = this.client.extract() ?? [];
21143
21552
  this.form.assign(stored.reduce((acc, [path, value]) => (0, set_1.default)(acc, path, value), {}));
21144
21553
  return this;
21145
21554
  }
21146
21555
  save() {
21147
- localStorage.setItem(this.key, JSON.stringify((0, utils_1.convertObjectToKeyValueCouples)(this.form.values)));
21556
+ this.client.store((0, utils_1.convertObjectToKeyValueCouples)(this.form.extract(), this.form.paths));
21148
21557
  return this;
21149
21558
  }
21150
21559
  clear() {
21151
- localStorage.removeItem(this.key);
21560
+ this.client.clear();
21152
21561
  return this;
21153
21562
  }
21154
21563
  static build(key, element) {
@@ -21157,7 +21566,7 @@ class DynamicStorage {
21157
21566
  }
21158
21567
  exports.DynamicStorage = DynamicStorage;
21159
21568
 
21160
- },{"../utils":265,"./form":263,"lodash/set":217}],263:[function(require,module,exports){
21569
+ },{"../utils":290,"./client-storage":275,"./form":278,"lodash/set":229}],278:[function(require,module,exports){
21161
21570
  "use strict";
21162
21571
  var __importDefault = (this && this.__importDefault) || function (mod) {
21163
21572
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -21170,8 +21579,8 @@ const component_1 = require("./component");
21170
21579
  const castInputValue = (() => {
21171
21580
  const map = {
21172
21581
  password: String,
21173
- text: String,
21174
21582
  number: Number,
21583
+ text: String,
21175
21584
  };
21176
21585
  return (type, value) => {
21177
21586
  if (type === 'checkbox') {
@@ -21182,16 +21591,22 @@ const castInputValue = (() => {
21182
21591
  };
21183
21592
  })();
21184
21593
  class Form extends component_1.Component {
21185
- get values() {
21594
+ get paths() {
21595
+ return [...this.element.querySelectorAll('*[data-key]')]
21596
+ .map((input) => input.getAttribute('data-key'))
21597
+ .filter(Boolean);
21598
+ }
21599
+ extract() {
21186
21600
  return [...this.element.querySelectorAll('*[data-key]')].reduce((acc, input) => {
21187
21601
  const key = input.getAttribute('data-key');
21188
- const type = input.getAttribute('type') ?? 'text';
21602
+ const type = (input.getAttribute('cast') ?? input.getAttribute('type') ?? 'text');
21189
21603
  if (!key || 'value' in input === false || typeof input.value !== 'string') {
21190
21604
  return acc;
21191
21605
  }
21192
- if (input.getAttribute('format') === 'array') {
21606
+ if (input.hasAttribute('list')) {
21607
+ const delimiter = input.getAttribute('list') ?? ',';
21193
21608
  const value = input.value
21194
- .split(',')
21609
+ .split(delimiter)
21195
21610
  .map((nested) => castInputValue(type, nested))
21196
21611
  .filter((nested) => nested !== null);
21197
21612
  return value.length ? (0, set_1.default)(acc, key, value) : acc;
@@ -21204,7 +21619,9 @@ class Form extends component_1.Component {
21204
21619
  }, {});
21205
21620
  }
21206
21621
  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));
21622
+ (0, utils_1.convertObjectToKeyValueCouples)(payload, this.paths)
21623
+ .map(([path, value]) => [path, value, this.element.querySelector(`*[data-key="${path}"]`)])
21624
+ .forEach(([path, value, input]) => (0, set_1.default)(input, 'value', Array.isArray(value) ? value.join(input.getAttribute('list') ?? ',') : (value ?? '')));
21208
21625
  return this;
21209
21626
  }
21210
21627
  static build(element) {
@@ -21213,7 +21630,7 @@ class Form extends component_1.Component {
21213
21630
  }
21214
21631
  exports.Form = Form;
21215
21632
 
21216
- },{"../utils":265,"./component":260,"lodash/set":217}],264:[function(require,module,exports){
21633
+ },{"../utils":290,"./component":276,"lodash/set":229}],279:[function(require,module,exports){
21217
21634
  "use strict";
21218
21635
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
21219
21636
  if (k2 === undefined) k2 = k;
@@ -21232,30 +21649,341 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
21232
21649
  Object.defineProperty(exports, "__esModule", { value: true });
21233
21650
  __exportStar(require("./dynamic-storage"), exports);
21234
21651
  __exportStar(require("./component"), exports);
21235
- __exportStar(require("./container"), exports);
21652
+ __exportStar(require("./section"), exports);
21236
21653
  __exportStar(require("./button"), exports);
21237
21654
  __exportStar(require("./form"), exports);
21238
21655
 
21239
- },{"./button":259,"./component":260,"./container":261,"./dynamic-storage":262,"./form":263}],265:[function(require,module,exports){
21656
+ },{"./button":274,"./component":276,"./dynamic-storage":277,"./form":278,"./section":280}],280:[function(require,module,exports){
21240
21657
  "use strict";
21241
21658
  var __importDefault = (this && this.__importDefault) || function (mod) {
21242
21659
  return (mod && mod.__esModule) ? mod : { "default": mod };
21243
21660
  };
21244
21661
  Object.defineProperty(exports, "__esModule", { value: true });
21245
- exports.buildCounter = exports.convertObjectToKeyValueCouples = void 0;
21246
- 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}.`));
21662
+ exports.Section = void 0;
21663
+ const events_1 = __importDefault(require("events"));
21664
+ const dynamic_storage_1 = require("./dynamic-storage");
21665
+ const component_1 = require("./component");
21666
+ class Section extends component_1.Component {
21667
+ constructor(element) {
21668
+ super();
21669
+ this.element = element;
21670
+ this.storage = dynamic_storage_1.DynamicStorage.build(`config:${this.element.id}`, this.element.querySelector('div.storage'));
21671
+ this.content = new component_1.Component(this.element.querySelector('div.content'));
21672
+ this.events = new events_1.default();
21673
+ this.meta = {};
21674
+ }
21675
+ assignMeta(meta) {
21676
+ return Object.assign(this, { meta });
21677
+ }
21678
+ initialize() {
21679
+ this.storage.sync();
21680
+ return this.emit('initialize', this);
21681
+ }
21682
+ refresh() {
21683
+ return this.emit('refresh', this);
21684
+ }
21685
+ select() {
21686
+ return this.emit('select', this);
21687
+ }
21688
+ on(event, handler) {
21689
+ this.events.on(event, handler);
21690
+ return this;
21691
+ }
21692
+ once(event, handler) {
21693
+ this.events.once(event, handler);
21694
+ return this;
21695
+ }
21696
+ emit(event, ...args) {
21697
+ this.events.emit(event, ...args);
21698
+ return this;
21699
+ }
21700
+ static build(predicate) {
21701
+ return new Section(typeof predicate === 'string' ? new component_1.Component(predicate).element : predicate);
21702
+ }
21703
+ }
21704
+ exports.Section = Section;
21705
+
21706
+ },{"./component":276,"./dynamic-storage":277,"events":27}],281:[function(require,module,exports){
21707
+ "use strict";
21708
+ var __importDefault = (this && this.__importDefault) || function (mod) {
21709
+ return (mod && mod.__esModule) ? mod : { "default": mod };
21710
+ };
21711
+ Object.defineProperty(exports, "__esModule", { value: true });
21712
+ const handlebars_1 = __importDefault(require("handlebars"));
21713
+ const models_1 = require("../../models");
21714
+ const template = require('./template.hbs');
21715
+ const render = handlebars_1.default.compile(template);
21716
+ exports.default = models_1.Section
21717
+ .build(render({}))
21718
+ .assignMeta({ icon: 'fas fa-chart-line' });
21719
+
21720
+ },{"../../models":279,"./template.hbs":282,"handlebars":61}],282:[function(require,module,exports){
21721
+ module.exports = `
21722
+ <section id="analytics">
21723
+ <div class="storage"></div>
21724
+ <div class="content">
21725
+ <i class="fas fa-hammer"></i>
21726
+ <p>Soon</p>
21727
+ </div>
21728
+ </section>
21729
+ `
21730
+
21731
+ },{}],283:[function(require,module,exports){
21732
+ "use strict";
21733
+ var __importDefault = (this && this.__importDefault) || function (mod) {
21734
+ return (mod && mod.__esModule) ? mod : { "default": mod };
21735
+ };
21736
+ Object.defineProperty(exports, "__esModule", { value: true });
21737
+ const handlebars_1 = __importDefault(require("handlebars"));
21738
+ const components_1 = require("../../components");
21739
+ const models_1 = require("../../models");
21740
+ const common_1 = require("../../../../utils/common");
21741
+ const context_1 = __importDefault(require("../../context"));
21742
+ const template = require('./template.hbs');
21743
+ const render = handlebars_1.default.compile(template);
21744
+ const empty = components_1.EmptyComponent.build();
21745
+ const storage = new Map();
21746
+ const state = { search: (0, common_1.cast)(null) };
21747
+ const search = components_1.SearchComponent
21748
+ .build({ title: 'Search expectations' })
21749
+ .on('clear', () => {
21750
+ state.search = null;
21751
+ refresh();
21752
+ })
21753
+ .on('input', (value) => {
21754
+ state.search = value;
21755
+ refresh();
21756
+ });
21757
+ const filter = (list) => {
21758
+ let filtred = list;
21759
+ if (context_1.default.shared.settings.filters.groups) {
21760
+ filtred = filtred.filter((expectation) => context_1.default.shared.settings.filters.groups.has(expectation.data.group));
21250
21761
  }
21251
- acc.push([`${prefix}${key}`, value]);
21252
- return acc;
21762
+ if (state.search) {
21763
+ filtred = filtred.filter((expectation) => expectation.match(state.search));
21764
+ }
21765
+ return filtred;
21766
+ };
21767
+ const refresh = (list = [...storage.values()]) => {
21768
+ const shown = filter(list.map((expectation) => expectation.hide())).map((expectation) => expectation.show());
21769
+ if (list.length === storage.size) {
21770
+ shown.length ? empty.hide() : empty.show();
21771
+ }
21772
+ };
21773
+ exports.default = models_1.Section
21774
+ .build(render({}))
21775
+ .assignMeta({ name: 'Expectations', icon: 'fas fa-magic' })
21776
+ .on('select', () => refresh())
21777
+ .on('initialize', async (section) => {
21778
+ context_1.default.shared.groups.clear();
21779
+ section.content.clear();
21780
+ storage.clear();
21781
+ const { data } = await context_1.default.services.io.exec('expectations:get-list');
21782
+ data.forEach((expectation) => {
21783
+ const component = components_1.ExpectationComponent.build(expectation);
21784
+ storage.set(expectation.id, component);
21785
+ context_1.default.shared.groups.add(expectation.group);
21786
+ section.content.append(component);
21787
+ });
21788
+ refresh();
21789
+ })
21790
+ .once('initialize', (section) => {
21791
+ section.prepend(empty);
21792
+ section.prepend(search);
21793
+ context_1.default.services.io.subscribe('expectation:added', (data) => {
21794
+ const expectation = components_1.ExpectationComponent.build(data);
21795
+ storage.set(data.id, expectation);
21796
+ context_1.default.shared.groups.add(data.group);
21797
+ section.content.append(expectation);
21798
+ refresh([expectation]);
21799
+ });
21800
+ context_1.default.services.io.subscribe('expectation:updated', (data) => {
21801
+ const expectation = storage.get(data.id) ?? components_1.ExpectationComponent.build(data);
21802
+ if (storage.has(data.id)) {
21803
+ expectation.provide(data).refresh();
21804
+ }
21805
+ if (!section.content.element.querySelector(`div.expectation[id="${data.id}"]`)) {
21806
+ section.content.append(expectation);
21807
+ refresh([expectation]);
21808
+ }
21809
+ storage.set(data.id, expectation);
21810
+ context_1.default.shared.groups.add(data.group);
21811
+ });
21812
+ });
21813
+
21814
+ },{"../../../../utils/common":291,"../../components":258,"../../context":268,"../../models":279,"./template.hbs":284,"handlebars":61}],284:[function(require,module,exports){
21815
+ module.exports = `
21816
+ <section id="expectations">
21817
+ <div class="storage"></div>
21818
+ <div class="content"></div>
21819
+ </section>
21820
+ `
21821
+
21822
+ },{}],285:[function(require,module,exports){
21823
+ "use strict";
21824
+ var __importDefault = (this && this.__importDefault) || function (mod) {
21825
+ return (mod && mod.__esModule) ? mod : { "default": mod };
21826
+ };
21827
+ Object.defineProperty(exports, "__esModule", { value: true });
21828
+ const handlebars_1 = __importDefault(require("handlebars"));
21829
+ const components_1 = require("../../components");
21830
+ const models_1 = require("../../models");
21831
+ const common_1 = require("../../../../utils/common");
21832
+ const context_1 = __importDefault(require("../../context"));
21833
+ const template = require('./template.hbs');
21834
+ const render = handlebars_1.default.compile(template);
21835
+ const empty = components_1.EmptyComponent.build();
21836
+ const storage = new Map();
21837
+ const stack = [];
21838
+ const state = { search: (0, common_1.cast)(null) };
21839
+ const search = components_1.SearchComponent
21840
+ .build({ title: 'Search history' })
21841
+ .on('clear', () => {
21842
+ state.search = null;
21843
+ refresh();
21844
+ })
21845
+ .on('input', (value) => {
21846
+ state.search = value;
21847
+ refresh();
21848
+ });
21849
+ const filter = (list) => {
21850
+ let filtred = list;
21851
+ if (context_1.default.shared.settings.filters.groups) {
21852
+ filtred = filtred.filter((history) => context_1.default.shared.settings.filters.groups.has(history.data.group));
21853
+ }
21854
+ if (state.search) {
21855
+ filtred = filtred.filter((history) => history.match(state.search));
21856
+ }
21857
+ return filtred;
21858
+ };
21859
+ const refresh = (list = [...storage.values()]) => {
21860
+ const shown = filter(list.map((history) => history.hide())).map((history) => history.show());
21861
+ if (list.length === storage.size) {
21862
+ shown.length ? empty.hide() : empty.show();
21863
+ }
21864
+ };
21865
+ exports.default = models_1.Section
21866
+ .build(render({}))
21867
+ .assignMeta({ name: 'History', icon: 'fas fa-history' })
21868
+ .on('select', () => refresh())
21869
+ .on('initialize', async (section) => {
21870
+ section.content.clear();
21871
+ storage.clear();
21872
+ stack.splice(0, stack.length);
21873
+ const { data } = await context_1.default.services.io.exec('history:get-list');
21874
+ data.forEach((history) => {
21875
+ const component = components_1.HistoryComponent.build(history);
21876
+ storage.set(history.id, component);
21877
+ stack.push(history.id);
21878
+ section.content.append(component);
21879
+ });
21880
+ refresh();
21881
+ })
21882
+ .once('initialize', (section) => {
21883
+ section.prepend(empty);
21884
+ section.prepend(search);
21885
+ context_1.default.services.io.subscribe('history:added', (data) => {
21886
+ const history = components_1.HistoryComponent.build(data);
21887
+ storage.set(data.id, history);
21888
+ stack.push(data.id);
21889
+ if (stack.length > context_1.default.config.history.limit * context_1.default.shared.groups.size) {
21890
+ const id = stack.shift();
21891
+ storage.get(id)?.delete();
21892
+ storage.delete(id);
21893
+ }
21894
+ section.content.prepend(history);
21895
+ refresh([history]);
21896
+ });
21897
+ context_1.default.services.io.subscribe('history:updated', (data) => {
21898
+ const history = storage.get(data.id) ?? components_1.HistoryComponent.build(data);
21899
+ storage.has(data.id) ? history.provide(data).refresh() : stack.push(data.id);
21900
+ storage.set(data.id, history);
21901
+ if (!section.element.querySelector(`div.history[id="${data.id}"]`)) {
21902
+ section.content.prepend(history);
21903
+ refresh([history]);
21904
+ }
21905
+ });
21906
+ });
21907
+
21908
+ },{"../../../../utils/common":291,"../../components":258,"../../context":268,"../../models":279,"./template.hbs":286,"handlebars":61}],286:[function(require,module,exports){
21909
+ module.exports = `
21910
+ <section id="history">
21911
+ <div class="storage"></div>
21912
+ <div class="content"></div>
21913
+ </section>
21914
+ `
21915
+
21916
+ },{}],287:[function(require,module,exports){
21917
+ "use strict";
21918
+ var __importDefault = (this && this.__importDefault) || function (mod) {
21919
+ return (mod && mod.__esModule) ? mod : { "default": mod };
21920
+ };
21921
+ Object.defineProperty(exports, "__esModule", { value: true });
21922
+ exports.history = exports.settings = exports.analytics = exports.expectations = void 0;
21923
+ var expectations_section_1 = require("./expectations.section");
21924
+ Object.defineProperty(exports, "expectations", { enumerable: true, get: function () { return __importDefault(expectations_section_1).default; } });
21925
+ var analytics_section_1 = require("./analytics.section");
21926
+ Object.defineProperty(exports, "analytics", { enumerable: true, get: function () { return __importDefault(analytics_section_1).default; } });
21927
+ var settings_section_1 = require("./settings.section");
21928
+ Object.defineProperty(exports, "settings", { enumerable: true, get: function () { return __importDefault(settings_section_1).default; } });
21929
+ var history_section_1 = require("./history.section");
21930
+ Object.defineProperty(exports, "history", { enumerable: true, get: function () { return __importDefault(history_section_1).default; } });
21931
+
21932
+ },{"./analytics.section":281,"./expectations.section":283,"./history.section":285,"./settings.section":288}],288:[function(require,module,exports){
21933
+ "use strict";
21934
+ var __importDefault = (this && this.__importDefault) || function (mod) {
21935
+ return (mod && mod.__esModule) ? mod : { "default": mod };
21936
+ };
21937
+ Object.defineProperty(exports, "__esModule", { value: true });
21938
+ const handlebars_1 = __importDefault(require("handlebars"));
21939
+ const models_1 = require("../../models");
21940
+ const context_1 = __importDefault(require("../../context"));
21941
+ const template = require('./template.hbs');
21942
+ const render = handlebars_1.default.compile(template);
21943
+ exports.default = models_1.Section
21944
+ .build(render({}))
21945
+ .assignMeta({ icon: 'fas fa-cog' })
21946
+ .on('select', async () => {
21947
+ context_1.default.shared.settings.refresh();
21948
+ })
21949
+ .on('initialize', () => {
21950
+ context_1.default.shared.settings.resetFilters();
21951
+ context_1.default.shared.settings.refresh();
21952
+ })
21953
+ .once('initialize', (section) => {
21954
+ section.append(context_1.default.shared.settings);
21955
+ });
21956
+
21957
+ },{"../../context":268,"../../models":279,"./template.hbs":289,"handlebars":61}],289:[function(require,module,exports){
21958
+ module.exports = `
21959
+ <section id="settings">
21960
+ <div class="storage"></div>
21961
+ <div class="content"></div>
21962
+ </section>
21963
+ `
21964
+
21965
+ },{}],290:[function(require,module,exports){
21966
+ "use strict";
21967
+ var __importDefault = (this && this.__importDefault) || function (mod) {
21968
+ return (mod && mod.__esModule) ? mod : { "default": mod };
21969
+ };
21970
+ Object.defineProperty(exports, "__esModule", { value: true });
21971
+ exports.calculateColor = exports.buildCounter = exports.convertObjectToKeyValueCouples = void 0;
21972
+ const isObject_1 = __importDefault(require("lodash/isObject"));
21973
+ const fnv1a_1 = __importDefault(require("fnv1a"));
21974
+ const convertObjectToKeyValueCouples = (object, paths, prefix = '') => Object.entries(object).reduce((acc, [key, value]) => {
21975
+ const path = `${prefix}${prefix ? '.' : ''}${key}`;
21976
+ return (0, isObject_1.default)(value) && !paths.includes(path)
21977
+ ? acc.concat((0, exports.convertObjectToKeyValueCouples)(value, paths, path))
21978
+ : acc.concat([[path, value]]);
21253
21979
  }, []);
21254
21980
  exports.convertObjectToKeyValueCouples = convertObjectToKeyValueCouples;
21255
21981
  const buildCounter = (initial = 0, step = 1) => (value = step) => (initial += value);
21256
21982
  exports.buildCounter = buildCounter;
21983
+ const calculateColor = (text) => `hsl(${Math.floor((0, fnv1a_1.default)(text)) / 5 % 360}, 100%, 74%)`;
21984
+ exports.calculateColor = calculateColor;
21257
21985
 
21258
- },{"lodash/isObject":204}],266:[function(require,module,exports){
21986
+ },{"fnv1a":28,"lodash/isObject":215}],291:[function(require,module,exports){
21259
21987
  "use strict";
21260
21988
  Object.defineProperty(exports, "__esModule", { value: true });
21261
21989
  exports.buildCounter = exports.flattenArrayed = exports.cast = exports.wait = void 0;
@@ -21286,7 +22014,7 @@ exports.flattenArrayed = flattenArrayed;
21286
22014
  const buildCounter = (initial = 0, step = 1) => (value = step) => (initial += value);
21287
22015
  exports.buildCounter = buildCounter;
21288
22016
 
21289
- },{}],267:[function(require,module,exports){
22017
+ },{}],292:[function(require,module,exports){
21290
22018
  "use strict";
21291
22019
 
21292
22020
  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 +22022,7 @@ var _unset2 = _interopRequireDefault(require("lodash/unset"));
21294
22022
  var _omit2 = _interopRequireDefault(require("lodash/omit"));
21295
22023
  var _set2 = _interopRequireDefault(require("lodash/set"));
21296
22024
  var components = _interopRequireWildcard(require("./components"));
21297
- var containers = _interopRequireWildcard(require("./containers"));
22025
+ var sections = _interopRequireWildcard(require("./sections"));
21298
22026
  var _handlebars = _interopRequireDefault(require("./handlebars"));
21299
22027
  var _context2 = _interopRequireDefault(require("./context"));
21300
22028
  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 +22033,38 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try
21305
22033
  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
22034
  _handlebars["default"].init();
21307
22035
  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,
22036
+ var header = components.HeaderComponent.build([{
22037
+ type: 'section',
22038
+ entity: sections.settings.hide()
22039
+ }, {
22040
+ type: 'section',
22041
+ entity: sections.analytics.hide()
22042
+ }, {
22043
+ type: 'separator'
22044
+ }, {
22045
+ type: 'section',
22046
+ entity: sections.expectations
22047
+ }, {
22048
+ type: 'section',
22049
+ entity: sections.history.hide()
22050
+ }]).on('select', function (section) {
22051
+ Object.values(header.sections).forEach(function (nested) {
22052
+ return nested.hide();
22053
+ });
22054
+ _context2["default"].switchStorage(section.storage);
22055
+ section.show().select();
22056
+ });
22057
+ _context2["default"].switchStorage(sections.expectations.storage).share({
22058
+ sections: sections,
21315
22059
  groups: new Set(),
21316
22060
  popups: components.PopupsComponent.build(),
21317
22061
  settings: components.SettingsComponent.build()
21318
22062
  });
21319
- document.body.append(_context2["default"].shared.popups.element);
22063
+ document.body.prepend(header.element);
21320
22064
  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();
22065
+ document.body.append(_context2["default"].shared.popups.element);
22066
+ Object.values(sections).forEach(function (section) {
22067
+ return document.body.append(section.element);
21337
22068
  });
21338
22069
  _context2["default"].instances.io.on('connect', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
21339
22070
  var _yield$context$servic, data;
@@ -21351,11 +22082,12 @@ _context2["default"].instances.io.on('connect', /*#__PURE__*/_asyncToGenerator(
21351
22082
  _yield$context$servic = _context.sent;
21352
22083
  data = _yield$context$servic.data;
21353
22084
  _context2["default"].assignConfig(data);
21354
- Object.values(containers).forEach(function (container) {
22085
+ _context2["default"].shared.popups.push('Connected!');
22086
+ Object.values(sections).forEach(function (container) {
21355
22087
  return container.initialize();
21356
22088
  });
21357
22089
  loader.hide();
21358
- case 10:
22090
+ case 11:
21359
22091
  case "end":
21360
22092
  return _context.stop();
21361
22093
  }
@@ -21363,4 +22095,4 @@ _context2["default"].instances.io.on('connect', /*#__PURE__*/_asyncToGenerator(
21363
22095
  }, _callee);
21364
22096
  })));
21365
22097
 
21366
- },{"./components":241,"./containers":251,"./context":253,"./handlebars":255,"lodash/omit":215,"lodash/set":217,"lodash/unset":222}]},{},[267]);
22098
+ },{"./components":258,"./context":268,"./handlebars":270,"./sections":287,"lodash/omit":227,"lodash/set":229,"lodash/unset":237}]},{},[292]);