@fmdevui/fm-dev 1.0.8 → 1.0.10

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.
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! fm-dev v1.0.8 */
1
+ /*! fm-dev v1.0.10 */
2
2
  (function (global, factory) {
3
3
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue'), require('crypto'), require('url'), require('http'), require('https'), require('util'), require('stream'), require('assert'), require('zlib'), require('element-plus')) :
4
4
  typeof define === 'function' && define.amd ? define(['exports', 'vue', 'crypto', 'url', 'http', 'https', 'util', 'stream', 'assert', 'zlib', 'element-plus'], factory) :
@@ -46,6 +46,43 @@
46
46
 
47
47
  var installer = makeInstaller([...plugins]);
48
48
 
49
+ const NextLoading = {
50
+ // 创建 loading
51
+ start: () => {
52
+ const bodys = document.body;
53
+ const div = document.createElement("div");
54
+ div.setAttribute("class", "loading-next");
55
+ const htmls = `
56
+ <div class="loading-next-box">
57
+ <div class="loading-next-box-warp">
58
+ <div class="loading-next-box-item"></div>
59
+ <div class="loading-next-box-item"></div>
60
+ <div class="loading-next-box-item"></div>
61
+ <div class="loading-next-box-item"></div>
62
+ <div class="loading-next-box-item"></div>
63
+ <div class="loading-next-box-item"></div>
64
+ <div class="loading-next-box-item"></div>
65
+ <div class="loading-next-box-item"></div>
66
+ <div class="loading-next-box-item"></div>
67
+ </div>
68
+ </div>
69
+ `;
70
+ div.innerHTML = htmls;
71
+ bodys.insertBefore(div, bodys.childNodes[0]);
72
+ window.nextLoading = true;
73
+ },
74
+ // 移除 loading
75
+ done: (time = 0) => {
76
+ vue.nextTick(() => {
77
+ setTimeout(() => {
78
+ window.nextLoading = false;
79
+ const el = document.querySelector(".loading-next");
80
+ el?.parentNode?.removeChild(el);
81
+ }, time);
82
+ });
83
+ }
84
+ };
85
+
49
86
  function bind(fn, thisArg) {
50
87
  return function wrap() {
51
88
  return fn.apply(thisArg, arguments);
@@ -77,7 +114,7 @@
77
114
  *
78
115
  * @returns {boolean} True if value is an Array, otherwise false
79
116
  */
80
- const {isArray: isArray$2} = Array;
117
+ const {isArray: isArray$3} = Array;
81
118
 
82
119
  /**
83
120
  * Determine if a value is undefined
@@ -95,9 +132,9 @@
95
132
  *
96
133
  * @returns {boolean} True if value is a Buffer, otherwise false
97
134
  */
98
- function isBuffer(val) {
135
+ function isBuffer$1(val) {
99
136
  return val !== null && !isUndefined$1(val) && val.constructor !== null && !isUndefined$1(val.constructor)
100
- && isFunction$1(val.constructor.isBuffer) && val.constructor.isBuffer(val);
137
+ && isFunction$2(val.constructor.isBuffer) && val.constructor.isBuffer(val);
101
138
  }
102
139
 
103
140
  /**
@@ -142,7 +179,7 @@
142
179
  * @param {*} val The value to test
143
180
  * @returns {boolean} True if value is a Function, otherwise false
144
181
  */
145
- const isFunction$1 = typeOfTest('function');
182
+ const isFunction$2 = typeOfTest('function');
146
183
 
147
184
  /**
148
185
  * Determine if a value is a Number
@@ -160,7 +197,7 @@
160
197
  *
161
198
  * @returns {boolean} True if value is an Object, otherwise false
162
199
  */
163
- const isObject$1 = (thing) => thing !== null && typeof thing === 'object';
200
+ const isObject$2 = (thing) => thing !== null && typeof thing === 'object';
164
201
 
165
202
  /**
166
203
  * Determine if a value is a Boolean
@@ -177,7 +214,7 @@
177
214
  *
178
215
  * @returns {boolean} True if value is a plain Object, otherwise false
179
216
  */
180
- const isPlainObject$2 = (val) => {
217
+ const isPlainObject$3 = (val) => {
181
218
  if (kindOf(val) !== 'object') {
182
219
  return false;
183
220
  }
@@ -229,7 +266,7 @@
229
266
  *
230
267
  * @returns {boolean} True if value is a Stream, otherwise false
231
268
  */
232
- const isStream = (val) => isObject$1(val) && isFunction$1(val.pipe);
269
+ const isStream = (val) => isObject$2(val) && isFunction$2(val.pipe);
233
270
 
234
271
  /**
235
272
  * Determine if a value is a FormData
@@ -242,10 +279,10 @@
242
279
  let kind;
243
280
  return thing && (
244
281
  (typeof FormData === 'function' && thing instanceof FormData) || (
245
- isFunction$1(thing.append) && (
282
+ isFunction$2(thing.append) && (
246
283
  (kind = kindOf(thing)) === 'formdata' ||
247
284
  // detect form-data instance
248
- (kind === 'object' && isFunction$1(thing.toString) && thing.toString() === '[object FormData]')
285
+ (kind === 'object' && isFunction$2(thing.toString) && thing.toString() === '[object FormData]')
249
286
  )
250
287
  )
251
288
  )
@@ -302,7 +339,7 @@
302
339
  obj = [obj];
303
340
  }
304
341
 
305
- if (isArray$2(obj)) {
342
+ if (isArray$3(obj)) {
306
343
  // Iterate over array values
307
344
  for (i = 0, l = obj.length; i < l; i++) {
308
345
  fn.call(null, obj[i], i, obj);
@@ -360,16 +397,16 @@
360
397
  *
361
398
  * @returns {Object} Result of all merge properties
362
399
  */
363
- function merge(/* obj1, obj2, obj3, ... */) {
400
+ function merge$1(/* obj1, obj2, obj3, ... */) {
364
401
  const {caseless} = isContextDefined(this) && this || {};
365
402
  const result = {};
366
403
  const assignValue = (val, key) => {
367
404
  const targetKey = caseless && findKey(result, key) || key;
368
- if (isPlainObject$2(result[targetKey]) && isPlainObject$2(val)) {
369
- result[targetKey] = merge(result[targetKey], val);
370
- } else if (isPlainObject$2(val)) {
371
- result[targetKey] = merge({}, val);
372
- } else if (isArray$2(val)) {
405
+ if (isPlainObject$3(result[targetKey]) && isPlainObject$3(val)) {
406
+ result[targetKey] = merge$1(result[targetKey], val);
407
+ } else if (isPlainObject$3(val)) {
408
+ result[targetKey] = merge$1({}, val);
409
+ } else if (isArray$3(val)) {
373
410
  result[targetKey] = val.slice();
374
411
  } else {
375
412
  result[targetKey] = val;
@@ -394,7 +431,7 @@
394
431
  */
395
432
  const extend = (a, b, thisArg, {allOwnKeys}= {}) => {
396
433
  forEach$1(b, (val, key) => {
397
- if (thisArg && isFunction$1(val)) {
434
+ if (thisArg && isFunction$2(val)) {
398
435
  a[key] = bind(val, thisArg);
399
436
  } else {
400
437
  a[key] = val;
@@ -499,7 +536,7 @@
499
536
  */
500
537
  const toArray = (thing) => {
501
538
  if (!thing) return null;
502
- if (isArray$2(thing)) return thing;
539
+ if (isArray$3(thing)) return thing;
503
540
  let i = thing.length;
504
541
  if (!isNumber$2(i)) return null;
505
542
  const arr = new Array(i);
@@ -518,7 +555,7 @@
518
555
  * @returns {Array}
519
556
  */
520
557
  // eslint-disable-next-line func-names
521
- const isTypedArray$1 = (TypedArray => {
558
+ const isTypedArray$2 = (TypedArray => {
522
559
  // eslint-disable-next-line func-names
523
560
  return thing => {
524
561
  return TypedArray && thing instanceof TypedArray;
@@ -577,7 +614,7 @@
577
614
  };
578
615
 
579
616
  /* Creating a function that will check if an object has a property. */
580
- const hasOwnProperty$1 = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);
617
+ const hasOwnProperty$9 = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);
581
618
 
582
619
  /**
583
620
  * Determine if a value is a RegExp object
@@ -610,13 +647,13 @@
610
647
  const freezeMethods = (obj) => {
611
648
  reduceDescriptors(obj, (descriptor, name) => {
612
649
  // skip restricted props in strict mode
613
- if (isFunction$1(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {
650
+ if (isFunction$2(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {
614
651
  return false;
615
652
  }
616
653
 
617
654
  const value = obj[name];
618
655
 
619
- if (!isFunction$1(value)) return;
656
+ if (!isFunction$2(value)) return;
620
657
 
621
658
  descriptor.enumerable = false;
622
659
 
@@ -642,7 +679,7 @@
642
679
  });
643
680
  };
644
681
 
645
- isArray$2(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));
682
+ isArray$3(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));
646
683
 
647
684
  return obj;
648
685
  };
@@ -661,7 +698,7 @@
661
698
  * @returns {boolean}
662
699
  */
663
700
  function isSpecCompliantForm(thing) {
664
- return !!(thing && isFunction$1(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]);
701
+ return !!(thing && isFunction$2(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]);
665
702
  }
666
703
 
667
704
  const toJSONObject = (obj) => {
@@ -669,14 +706,14 @@
669
706
 
670
707
  const visit = (source, i) => {
671
708
 
672
- if (isObject$1(source)) {
709
+ if (isObject$2(source)) {
673
710
  if (stack.indexOf(source) >= 0) {
674
711
  return;
675
712
  }
676
713
 
677
714
  if(!('toJSON' in source)) {
678
715
  stack[i] = source;
679
- const target = isArray$2(source) ? [] : {};
716
+ const target = isArray$3(source) ? [] : {};
680
717
 
681
718
  forEach$1(source, (value, key) => {
682
719
  const reducedValue = visit(value, i + 1);
@@ -698,7 +735,7 @@
698
735
  const isAsyncFn = kindOfTest('AsyncFunction');
699
736
 
700
737
  const isThenable = (thing) =>
701
- thing && (isObject$1(thing) || isFunction$1(thing)) && isFunction$1(thing.then) && isFunction$1(thing.catch);
738
+ thing && (isObject$2(thing) || isFunction$2(thing)) && isFunction$2(thing.then) && isFunction$2(thing.catch);
702
739
 
703
740
  // original code
704
741
  // https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34
@@ -722,7 +759,7 @@
722
759
  })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);
723
760
  })(
724
761
  typeof setImmediate === 'function',
725
- isFunction$1(_global$1.postMessage)
762
+ isFunction$2(_global$1.postMessage)
726
763
  );
727
764
 
728
765
  const asap = typeof queueMicrotask !== 'undefined' ?
@@ -731,20 +768,20 @@
731
768
  // *********************
732
769
 
733
770
 
734
- const isIterable = (thing) => thing != null && isFunction$1(thing[iterator]);
771
+ const isIterable = (thing) => thing != null && isFunction$2(thing[iterator]);
735
772
 
736
773
 
737
774
  var utils$1 = {
738
- isArray: isArray$2,
775
+ isArray: isArray$3,
739
776
  isArrayBuffer,
740
- isBuffer,
777
+ isBuffer: isBuffer$1,
741
778
  isFormData,
742
779
  isArrayBufferView,
743
780
  isString: isString$2,
744
781
  isNumber: isNumber$2,
745
782
  isBoolean: isBoolean$2,
746
- isObject: isObject$1,
747
- isPlainObject: isPlainObject$2,
783
+ isObject: isObject$2,
784
+ isPlainObject: isPlainObject$3,
748
785
  isReadableStream,
749
786
  isRequest,
750
787
  isResponse,
@@ -754,13 +791,13 @@
754
791
  isFile,
755
792
  isBlob,
756
793
  isRegExp: isRegExp$2,
757
- isFunction: isFunction$1,
794
+ isFunction: isFunction$2,
758
795
  isStream,
759
796
  isURLSearchParams,
760
- isTypedArray: isTypedArray$1,
797
+ isTypedArray: isTypedArray$2,
761
798
  isFileList,
762
799
  forEach: forEach$1,
763
- merge,
800
+ merge: merge$1,
764
801
  extend,
765
802
  trim,
766
803
  stripBOM,
@@ -773,8 +810,8 @@
773
810
  forEachEntry,
774
811
  matchAll,
775
812
  isHTMLForm,
776
- hasOwnProperty: hasOwnProperty$1,
777
- hasOwnProp: hasOwnProperty$1, // an alias to avoid ESLint no-prototype-builtins detection
813
+ hasOwnProperty: hasOwnProperty$9,
814
+ hasOwnProp: hasOwnProperty$9, // an alias to avoid ESLint no-prototype-builtins detection
778
815
  reduceDescriptors,
779
816
  freezeMethods,
780
817
  toObjectSet,
@@ -16092,7 +16129,7 @@
16092
16129
  const RE_ARGS = /\{([0-9a-zA-Z]+)\}/g;
16093
16130
  /* eslint-disable */
16094
16131
  function format$1(message, ...args) {
16095
- if (args.length === 1 && isObject(args[0])) {
16132
+ if (args.length === 1 && isObject$1(args[0])) {
16096
16133
  args = args[0];
16097
16134
  }
16098
16135
  if (!args || !args.hasOwnProperty) {
@@ -16111,7 +16148,7 @@
16111
16148
  const isNumber$1 = (val) => typeof val === 'number' && isFinite(val);
16112
16149
  const isDate$1 = (val) => toTypeString(val) === '[object Date]';
16113
16150
  const isRegExp$1 = (val) => toTypeString(val) === '[object RegExp]';
16114
- const isEmptyObject$1 = (val) => isPlainObject$1(val) && Object.keys(val).length === 0;
16151
+ const isEmptyObject$1 = (val) => isPlainObject$2(val) && Object.keys(val).length === 0;
16115
16152
  const assign$2 = Object.assign;
16116
16153
  const _create = Object.create;
16117
16154
  const create$1 = (obj = null) => _create(obj);
@@ -16137,9 +16174,9 @@
16137
16174
  .replace(/"/g, '&quot;')
16138
16175
  .replace(/'/g, '&apos;');
16139
16176
  }
16140
- const hasOwnProperty = Object.prototype.hasOwnProperty;
16177
+ const hasOwnProperty$8 = Object.prototype.hasOwnProperty;
16141
16178
  function hasOwn(obj, key) {
16142
- return hasOwnProperty.call(obj, key);
16179
+ return hasOwnProperty$8.call(obj, key);
16143
16180
  }
16144
16181
  /* eslint-enable */
16145
16182
  /**
@@ -16149,24 +16186,24 @@
16149
16186
  * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/index.ts
16150
16187
  * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/codeframe.ts
16151
16188
  */
16152
- const isArray$1 = Array.isArray;
16153
- const isFunction = (val) => typeof val === 'function';
16189
+ const isArray$2 = Array.isArray;
16190
+ const isFunction$1 = (val) => typeof val === 'function';
16154
16191
  const isString$1 = (val) => typeof val === 'string';
16155
16192
  const isBoolean$1 = (val) => typeof val === 'boolean';
16156
16193
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
16157
- const isObject = (val) => val !== null && typeof val === 'object';
16194
+ const isObject$1 = (val) => val !== null && typeof val === 'object';
16158
16195
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
16159
16196
  const isPromise = (val) => {
16160
- return isObject(val) && isFunction(val.then) && isFunction(val.catch);
16197
+ return isObject$1(val) && isFunction$1(val.then) && isFunction$1(val.catch);
16161
16198
  };
16162
- const objectToString = Object.prototype.toString;
16163
- const toTypeString = (value) => objectToString.call(value);
16164
- const isPlainObject$1 = (val) => toTypeString(val) === '[object Object]';
16199
+ const objectToString$1 = Object.prototype.toString;
16200
+ const toTypeString = (value) => objectToString$1.call(value);
16201
+ const isPlainObject$2 = (val) => toTypeString(val) === '[object Object]';
16165
16202
  // for converting list and named values to displayed strings.
16166
16203
  const toDisplayString = (val) => {
16167
16204
  return val == null
16168
16205
  ? ''
16169
- : isArray$1(val) || (isPlainObject$1(val) && val.toString === objectToString)
16206
+ : isArray$2(val) || (isPlainObject$2(val) && val.toString === objectToString$1)
16170
16207
  ? JSON.stringify(val, null, 2)
16171
16208
  : String(val);
16172
16209
  };
@@ -16265,7 +16302,7 @@
16265
16302
  return emitter;
16266
16303
  }
16267
16304
 
16268
- const isNotObjectOrIsArray = (val) => !isObject(val) || isArray$1(val);
16305
+ const isNotObjectOrIsArray = (val) => !isObject$1(val) || isArray$2(val);
16269
16306
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
16270
16307
  function deepCopy(src, des) {
16271
16308
  // src and des should both be objects, and none of them can be a array
@@ -16282,7 +16319,7 @@
16282
16319
  }
16283
16320
  // if src[key] is an object/array, set des[key]
16284
16321
  // to empty object/array to prevent setting by reference
16285
- if (isObject(src[key]) && !isObject(des[key])) {
16322
+ if (isObject$1(src[key]) && !isObject$1(des[key])) {
16286
16323
  des[key] = Array.isArray(src[key]) ? [] : create$1();
16287
16324
  }
16288
16325
  if (isNotObjectOrIsArray(des[key]) || isNotObjectOrIsArray(src[key])) {
@@ -17825,7 +17862,7 @@
17825
17862
  }
17826
17863
 
17827
17864
  function isMessageAST(val) {
17828
- return (isObject(val) &&
17865
+ return (isObject$1(val) &&
17829
17866
  resolveType(val) === 0 &&
17830
17867
  (hasOwn(val, 'b') || hasOwn(val, 'body')));
17831
17868
  }
@@ -18106,7 +18143,7 @@
18106
18143
  return locale;
18107
18144
  }
18108
18145
  else {
18109
- if (isFunction(locale)) {
18146
+ if (isFunction$1(locale)) {
18110
18147
  if (locale.resolvedOnce && _resolveLocale != null) {
18111
18148
  return _resolveLocale;
18112
18149
  }
@@ -18146,9 +18183,9 @@
18146
18183
  // prettier-ignore
18147
18184
  return [...new Set([
18148
18185
  start,
18149
- ...(isArray$1(fallback)
18186
+ ...(isArray$2(fallback)
18150
18187
  ? fallback
18151
- : isObject(fallback)
18188
+ : isObject$1(fallback)
18152
18189
  ? Object.keys(fallback)
18153
18190
  : isString$1(fallback)
18154
18191
  ? [fallback]
@@ -18183,19 +18220,19 @@
18183
18220
  // first block defined by start
18184
18221
  let block = [start];
18185
18222
  // while any intervening block found
18186
- while (isArray$1(block)) {
18223
+ while (isArray$2(block)) {
18187
18224
  block = appendBlockToChain(chain, block, fallback);
18188
18225
  }
18189
18226
  // prettier-ignore
18190
18227
  // last block defined by default
18191
- const defaults = isArray$1(fallback) || !isPlainObject$1(fallback)
18228
+ const defaults = isArray$2(fallback) || !isPlainObject$2(fallback)
18192
18229
  ? fallback
18193
18230
  : fallback['default']
18194
18231
  ? fallback['default']
18195
18232
  : null;
18196
18233
  // convert defaults to array
18197
18234
  block = isString$1(defaults) ? [defaults] : defaults;
18198
- if (isArray$1(block)) {
18235
+ if (isArray$2(block)) {
18199
18236
  appendBlockToChain(chain, block, false);
18200
18237
  }
18201
18238
  context.__localeChainCache.set(startLocale, chain);
@@ -18230,7 +18267,7 @@
18230
18267
  follow = target[target.length - 1] !== '!';
18231
18268
  const locale = target.replace(/!/g, '');
18232
18269
  chain.push(locale);
18233
- if ((isArray$1(blocks) || isPlainObject$1(blocks)) &&
18270
+ if ((isArray$2(blocks) || isPlainObject$2(blocks)) &&
18234
18271
  blocks[locale] // eslint-disable-line @typescript-eslint/no-explicit-any
18235
18272
  ) {
18236
18273
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -18459,7 +18496,7 @@
18459
18496
  * @VueI18nGeneral
18460
18497
  */
18461
18498
  function resolveWithKeyValue(obj, path) {
18462
- return isObject(obj) ? obj[path] : null;
18499
+ return isObject$1(obj) ? obj[path] : null;
18463
18500
  }
18464
18501
  /**
18465
18502
  * message resolver
@@ -18476,7 +18513,7 @@
18476
18513
  */
18477
18514
  function resolveValue(obj, path) {
18478
18515
  // check object
18479
- if (!isObject(obj)) {
18516
+ if (!isObject$1(obj)) {
18480
18517
  return null;
18481
18518
  }
18482
18519
  // parse path
@@ -18509,7 +18546,7 @@
18509
18546
  if (val === undefined) {
18510
18547
  return null;
18511
18548
  }
18512
- if (isFunction(last)) {
18549
+ if (isFunction$1(last)) {
18513
18550
  return null;
18514
18551
  }
18515
18552
  last = val;
@@ -18558,7 +18595,7 @@
18558
18595
  // prettier-ignore
18559
18596
  return type === 'text' && isString$1(val)
18560
18597
  ? val.toUpperCase()
18561
- : type === 'vnode' && isObject(val) && '__v_isVNode' in val
18598
+ : type === 'vnode' && isObject$1(val) && '__v_isVNode' in val
18562
18599
  ? val.children.toUpperCase()
18563
18600
  : val;
18564
18601
  },
@@ -18566,7 +18603,7 @@
18566
18603
  // prettier-ignore
18567
18604
  return type === 'text' && isString$1(val)
18568
18605
  ? val.toLowerCase()
18569
- : type === 'vnode' && isObject(val) && '__v_isVNode' in val
18606
+ : type === 'vnode' && isObject$1(val) && '__v_isVNode' in val
18570
18607
  ? val.children.toLowerCase()
18571
18608
  : val;
18572
18609
  },
@@ -18574,7 +18611,7 @@
18574
18611
  // prettier-ignore
18575
18612
  return (type === 'text' && isString$1(val)
18576
18613
  ? capitalize(val)
18577
- : type === 'vnode' && isObject(val) && '__v_isVNode' in val
18614
+ : type === 'vnode' && isObject$1(val) && '__v_isVNode' in val
18578
18615
  ? capitalize(val.children)
18579
18616
  : val);
18580
18617
  }
@@ -18623,32 +18660,32 @@
18623
18660
  let _cid = 0;
18624
18661
  function createCoreContext(options = {}) {
18625
18662
  // setup options
18626
- const onWarn = isFunction(options.onWarn) ? options.onWarn : warn;
18663
+ const onWarn = isFunction$1(options.onWarn) ? options.onWarn : warn;
18627
18664
  const version = isString$1(options.version) ? options.version : VERSION$1;
18628
- const locale = isString$1(options.locale) || isFunction(options.locale)
18665
+ const locale = isString$1(options.locale) || isFunction$1(options.locale)
18629
18666
  ? options.locale
18630
18667
  : DEFAULT_LOCALE;
18631
- const _locale = isFunction(locale) ? DEFAULT_LOCALE : locale;
18632
- const fallbackLocale = isArray$1(options.fallbackLocale) ||
18633
- isPlainObject$1(options.fallbackLocale) ||
18668
+ const _locale = isFunction$1(locale) ? DEFAULT_LOCALE : locale;
18669
+ const fallbackLocale = isArray$2(options.fallbackLocale) ||
18670
+ isPlainObject$2(options.fallbackLocale) ||
18634
18671
  isString$1(options.fallbackLocale) ||
18635
18672
  options.fallbackLocale === false
18636
18673
  ? options.fallbackLocale
18637
18674
  : _locale;
18638
- const messages = isPlainObject$1(options.messages)
18675
+ const messages = isPlainObject$2(options.messages)
18639
18676
  ? options.messages
18640
18677
  : createResources(_locale);
18641
- const datetimeFormats = isPlainObject$1(options.datetimeFormats)
18678
+ const datetimeFormats = isPlainObject$2(options.datetimeFormats)
18642
18679
  ? options.datetimeFormats
18643
18680
  : createResources(_locale)
18644
18681
  ;
18645
- const numberFormats = isPlainObject$1(options.numberFormats)
18682
+ const numberFormats = isPlainObject$2(options.numberFormats)
18646
18683
  ? options.numberFormats
18647
18684
  : createResources(_locale)
18648
18685
  ;
18649
18686
  const modifiers = assign$2(create$1(), options.modifiers, getDefaultLinkedModifiers());
18650
18687
  const pluralRules = options.pluralRules || create$1();
18651
- const missing = isFunction(options.missing) ? options.missing : null;
18688
+ const missing = isFunction$1(options.missing) ? options.missing : null;
18652
18689
  const missingWarn = isBoolean$1(options.missingWarn) || isRegExp$1(options.missingWarn)
18653
18690
  ? options.missingWarn
18654
18691
  : true;
@@ -18657,43 +18694,43 @@
18657
18694
  : true;
18658
18695
  const fallbackFormat = !!options.fallbackFormat;
18659
18696
  const unresolving = !!options.unresolving;
18660
- const postTranslation = isFunction(options.postTranslation)
18697
+ const postTranslation = isFunction$1(options.postTranslation)
18661
18698
  ? options.postTranslation
18662
18699
  : null;
18663
- const processor = isPlainObject$1(options.processor) ? options.processor : null;
18700
+ const processor = isPlainObject$2(options.processor) ? options.processor : null;
18664
18701
  const warnHtmlMessage = isBoolean$1(options.warnHtmlMessage)
18665
18702
  ? options.warnHtmlMessage
18666
18703
  : true;
18667
18704
  const escapeParameter = !!options.escapeParameter;
18668
- const messageCompiler = isFunction(options.messageCompiler)
18705
+ const messageCompiler = isFunction$1(options.messageCompiler)
18669
18706
  ? options.messageCompiler
18670
18707
  : _compiler;
18671
18708
  if ((process.env.NODE_ENV !== 'production') &&
18672
18709
  true &&
18673
18710
  true &&
18674
- isFunction(options.messageCompiler)) {
18711
+ isFunction$1(options.messageCompiler)) {
18675
18712
  warnOnce(getWarnMessage$1(CoreWarnCodes.EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER));
18676
18713
  }
18677
- const messageResolver = isFunction(options.messageResolver)
18714
+ const messageResolver = isFunction$1(options.messageResolver)
18678
18715
  ? options.messageResolver
18679
18716
  : _resolver || resolveWithKeyValue;
18680
- const localeFallbacker = isFunction(options.localeFallbacker)
18717
+ const localeFallbacker = isFunction$1(options.localeFallbacker)
18681
18718
  ? options.localeFallbacker
18682
18719
  : _fallbacker || fallbackWithSimple;
18683
- const fallbackContext = isObject(options.fallbackContext)
18720
+ const fallbackContext = isObject$1(options.fallbackContext)
18684
18721
  ? options.fallbackContext
18685
18722
  : undefined;
18686
18723
  // setup internal options
18687
18724
  const internalOptions = options;
18688
- const __datetimeFormatters = isObject(internalOptions.__datetimeFormatters)
18725
+ const __datetimeFormatters = isObject$1(internalOptions.__datetimeFormatters)
18689
18726
  ? internalOptions.__datetimeFormatters
18690
18727
  : new Map()
18691
18728
  ;
18692
- const __numberFormatters = isObject(internalOptions.__numberFormatters)
18729
+ const __numberFormatters = isObject$1(internalOptions.__numberFormatters)
18693
18730
  ? internalOptions.__numberFormatters
18694
18731
  : new Map()
18695
18732
  ;
18696
- const __meta = isObject(internalOptions.__meta) ? internalOptions.__meta : {};
18733
+ const __meta = isObject$1(internalOptions.__meta) ? internalOptions.__meta : {};
18697
18734
  _cid++;
18698
18735
  const context = {
18699
18736
  version,
@@ -18861,13 +18898,13 @@
18861
18898
  datetimeFormat =
18862
18899
  datetimeFormats[targetLocale] || {};
18863
18900
  format = datetimeFormat[key];
18864
- if (isPlainObject$1(format))
18901
+ if (isPlainObject$2(format))
18865
18902
  break;
18866
18903
  handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any
18867
18904
  from = to;
18868
18905
  }
18869
18906
  // checking format and target locale
18870
- if (!isPlainObject$1(format) || !isString$1(targetLocale)) {
18907
+ if (!isPlainObject$2(format) || !isString$1(targetLocale)) {
18871
18908
  return unresolving ? NOT_REOSLVED : key;
18872
18909
  }
18873
18910
  let id = `${targetLocale}__${key}`;
@@ -18948,7 +18985,7 @@
18948
18985
  if (isString$1(arg2)) {
18949
18986
  options.key = arg2;
18950
18987
  }
18951
- else if (isPlainObject$1(arg2)) {
18988
+ else if (isPlainObject$2(arg2)) {
18952
18989
  Object.keys(arg2).forEach(key => {
18953
18990
  if (DATETIME_FORMAT_OPTIONS_KEYS.includes(key)) {
18954
18991
  overrides[key] = arg2[key];
@@ -18961,10 +18998,10 @@
18961
18998
  if (isString$1(arg3)) {
18962
18999
  options.locale = arg3;
18963
19000
  }
18964
- else if (isPlainObject$1(arg3)) {
19001
+ else if (isPlainObject$2(arg3)) {
18965
19002
  overrides = arg3;
18966
19003
  }
18967
- if (isPlainObject$1(arg4)) {
19004
+ if (isPlainObject$2(arg4)) {
18968
19005
  overrides = arg4;
18969
19006
  }
18970
19007
  return [options.key || '', value, options, overrides];
@@ -19036,13 +19073,13 @@
19036
19073
  numberFormat =
19037
19074
  numberFormats[targetLocale] || {};
19038
19075
  format = numberFormat[key];
19039
- if (isPlainObject$1(format))
19076
+ if (isPlainObject$2(format))
19040
19077
  break;
19041
19078
  handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any
19042
19079
  from = to;
19043
19080
  }
19044
19081
  // checking format and target locale
19045
- if (!isPlainObject$1(format) || !isString$1(targetLocale)) {
19082
+ if (!isPlainObject$2(format) || !isString$1(targetLocale)) {
19046
19083
  return unresolving ? NOT_REOSLVED : key;
19047
19084
  }
19048
19085
  let id = `${targetLocale}__${key}`;
@@ -19091,7 +19128,7 @@
19091
19128
  if (isString$1(arg2)) {
19092
19129
  options.key = arg2;
19093
19130
  }
19094
- else if (isPlainObject$1(arg2)) {
19131
+ else if (isPlainObject$2(arg2)) {
19095
19132
  Object.keys(arg2).forEach(key => {
19096
19133
  if (NUMBER_FORMAT_OPTIONS_KEYS.includes(key)) {
19097
19134
  overrides[key] = arg2[key];
@@ -19104,10 +19141,10 @@
19104
19141
  if (isString$1(arg3)) {
19105
19142
  options.locale = arg3;
19106
19143
  }
19107
- else if (isPlainObject$1(arg3)) {
19144
+ else if (isPlainObject$2(arg3)) {
19108
19145
  overrides = arg3;
19109
19146
  }
19110
- if (isPlainObject$1(arg4)) {
19147
+ if (isPlainObject$2(arg4)) {
19111
19148
  overrides = arg4;
19112
19149
  }
19113
19150
  return [options.key || '', value, options, overrides];
@@ -19166,14 +19203,14 @@
19166
19203
  function createMessageContext(options = {}) {
19167
19204
  const locale = options.locale;
19168
19205
  const pluralIndex = getPluralIndex(options);
19169
- const pluralRule = isObject(options.pluralRules) &&
19206
+ const pluralRule = isObject$1(options.pluralRules) &&
19170
19207
  isString$1(locale) &&
19171
- isFunction(options.pluralRules[locale])
19208
+ isFunction$1(options.pluralRules[locale])
19172
19209
  ? options.pluralRules[locale]
19173
19210
  : pluralDefault;
19174
- const orgPluralRule = isObject(options.pluralRules) &&
19211
+ const orgPluralRule = isObject$1(options.pluralRules) &&
19175
19212
  isString$1(locale) &&
19176
- isFunction(options.pluralRules[locale])
19213
+ isFunction$1(options.pluralRules[locale])
19177
19214
  ? pluralDefault
19178
19215
  : undefined;
19179
19216
  const plural = (messages) => {
@@ -19187,9 +19224,9 @@
19187
19224
  const named = (key) => _named[key];
19188
19225
  function message(key, useLinked) {
19189
19226
  // prettier-ignore
19190
- const msg = isFunction(options.messages)
19227
+ const msg = isFunction$1(options.messages)
19191
19228
  ? options.messages(key, !!useLinked)
19192
- : isObject(options.messages)
19229
+ : isObject$1(options.messages)
19193
19230
  ? options.messages[key]
19194
19231
  : false;
19195
19232
  return !msg
@@ -19201,14 +19238,14 @@
19201
19238
  const _modifier = (name) => options.modifiers
19202
19239
  ? options.modifiers[name]
19203
19240
  : DEFAULT_MODIFIER;
19204
- const normalize = isPlainObject$1(options.processor) && isFunction(options.processor.normalize)
19241
+ const normalize = isPlainObject$2(options.processor) && isFunction$1(options.processor.normalize)
19205
19242
  ? options.processor.normalize
19206
19243
  : DEFAULT_NORMALIZE;
19207
- const interpolate = isPlainObject$1(options.processor) &&
19208
- isFunction(options.processor.interpolate)
19244
+ const interpolate = isPlainObject$2(options.processor) &&
19245
+ isFunction$1(options.processor.interpolate)
19209
19246
  ? options.processor.interpolate
19210
19247
  : DEFAULT_INTERPOLATE;
19211
- const type = isPlainObject$1(options.processor) && isString$1(options.processor.type)
19248
+ const type = isPlainObject$2(options.processor) && isString$1(options.processor.type)
19212
19249
  ? options.processor.type
19213
19250
  : DEFAULT_MESSAGE_DATA_TYPE;
19214
19251
  const linked = (key, ...args) => {
@@ -19216,7 +19253,7 @@
19216
19253
  let type = 'text';
19217
19254
  let modifier = '';
19218
19255
  if (args.length === 1) {
19219
- if (isObject(arg1)) {
19256
+ if (isObject$1(arg1)) {
19220
19257
  modifier = arg1.modifier || modifier;
19221
19258
  type = arg1.type || type;
19222
19259
  }
@@ -19235,7 +19272,7 @@
19235
19272
  const ret = message(key, true)(ctx);
19236
19273
  const msg =
19237
19274
  // The message in vnode resolved with linked are returned as an array by processor.nomalize
19238
- type === 'vnode' && isArray$1(ret) && modifier
19275
+ type === 'vnode' && isArray$2(ret) && modifier
19239
19276
  ? ret[0]
19240
19277
  : ret;
19241
19278
  return modifier ? _modifier(modifier)(msg, type) : msg;
@@ -19255,7 +19292,7 @@
19255
19292
  }
19256
19293
 
19257
19294
  const NOOP_MESSAGE_FUNCTION = () => '';
19258
- const isMessageFunction = (val) => isFunction(val);
19295
+ const isMessageFunction = (val) => isFunction$1(val);
19259
19296
  // implementation of `translate` function
19260
19297
  function translate(context, ...args) {
19261
19298
  const { fallbackFormat, postTranslation, unresolving, messageCompiler, fallbackLocale, messages } = context;
@@ -19280,7 +19317,7 @@
19280
19317
  : null;
19281
19318
  const enableDefaultMsg = fallbackFormat ||
19282
19319
  (defaultMsgOrKey != null &&
19283
- (isString$1(defaultMsgOrKey) || isFunction(defaultMsgOrKey)));
19320
+ (isString$1(defaultMsgOrKey) || isFunction$1(defaultMsgOrKey)));
19284
19321
  const locale = getLocale(context, options);
19285
19322
  // escape params
19286
19323
  escapeParameter && escapeParams(options);
@@ -19373,10 +19410,10 @@
19373
19410
  return ret;
19374
19411
  }
19375
19412
  function escapeParams(options) {
19376
- if (isArray$1(options.list)) {
19413
+ if (isArray$2(options.list)) {
19377
19414
  options.list = options.list.map(item => isString$1(item) ? escapeHtml(item) : item);
19378
19415
  }
19379
- else if (isObject(options.named)) {
19416
+ else if (isObject$1(options.named)) {
19380
19417
  Object.keys(options.named).forEach(key => {
19381
19418
  if (isString$1(options.named[key])) {
19382
19419
  options.named[key] = escapeHtml(options.named[key]);
@@ -19565,10 +19602,10 @@
19565
19602
  else if (isString$1(arg2)) {
19566
19603
  options.default = arg2;
19567
19604
  }
19568
- else if (isPlainObject$1(arg2) && !isEmptyObject$1(arg2)) {
19605
+ else if (isPlainObject$2(arg2) && !isEmptyObject$1(arg2)) {
19569
19606
  options.named = arg2;
19570
19607
  }
19571
- else if (isArray$1(arg2)) {
19608
+ else if (isArray$2(arg2)) {
19572
19609
  options.list = arg2;
19573
19610
  }
19574
19611
  if (isNumber$1(arg3)) {
@@ -19577,7 +19614,7 @@
19577
19614
  else if (isString$1(arg3)) {
19578
19615
  options.default = arg3;
19579
19616
  }
19580
- else if (isPlainObject$1(arg3)) {
19617
+ else if (isPlainObject$2(arg3)) {
19581
19618
  assign$2(options, arg3);
19582
19619
  }
19583
19620
  return [key, options];
@@ -19964,7 +20001,7 @@
19964
20001
  */
19965
20002
  function handleFlatJson(obj) {
19966
20003
  // check obj
19967
- if (!isObject(obj)) {
20004
+ if (!isObject$1(obj)) {
19968
20005
  return obj;
19969
20006
  }
19970
20007
  if (isMessageAST(obj)) {
@@ -19978,7 +20015,7 @@
19978
20015
  // handle for normal json
19979
20016
  if (!key.includes('.')) {
19980
20017
  // recursive process value if value is also a object
19981
- if (isObject(obj[key])) {
20018
+ if (isObject$1(obj[key])) {
19982
20019
  handleFlatJson(obj[key]);
19983
20020
  }
19984
20021
  }
@@ -19996,7 +20033,7 @@
19996
20033
  if (!(subKeys[i] in currentObj)) {
19997
20034
  currentObj[subKeys[i]] = create$1();
19998
20035
  }
19999
- if (!isObject(currentObj[subKeys[i]])) {
20036
+ if (!isObject$1(currentObj[subKeys[i]])) {
20000
20037
  (process.env.NODE_ENV !== 'production') &&
20001
20038
  warn(getWarnMessage(I18nWarnCodes.IGNORE_OBJ_FLATTEN, {
20002
20039
  key: subKeys[i]
@@ -20025,7 +20062,7 @@
20025
20062
  // recursive process value if value is also a object
20026
20063
  if (!isMessageAST(currentObj)) {
20027
20064
  const target = currentObj[subKeys[lastIndex]];
20028
- if (isObject(target)) {
20065
+ if (isObject$1(target)) {
20029
20066
  handleFlatJson(target);
20030
20067
  }
20031
20068
  }
@@ -20036,13 +20073,13 @@
20036
20073
  function getLocaleMessages(locale, options) {
20037
20074
  const { messages, __i18n, messageResolver, flatJson } = options;
20038
20075
  // prettier-ignore
20039
- const ret = (isPlainObject$1(messages)
20076
+ const ret = (isPlainObject$2(messages)
20040
20077
  ? messages
20041
- : isArray$1(__i18n)
20078
+ : isArray$2(__i18n)
20042
20079
  ? create$1()
20043
20080
  : { [locale]: create$1() });
20044
20081
  // merge locale messages of i18n custom block
20045
- if (isArray$1(__i18n)) {
20082
+ if (isArray$2(__i18n)) {
20046
20083
  __i18n.forEach(custom => {
20047
20084
  if ('locale' in custom && 'resource' in custom) {
20048
20085
  const { locale, resource } = custom;
@@ -20074,7 +20111,7 @@
20074
20111
  }
20075
20112
  function adjustI18nResources(gl, options, componentOptions) {
20076
20113
  // prettier-ignore
20077
- let messages = isObject(options.messages)
20114
+ let messages = isObject$1(options.messages)
20078
20115
  ? options.messages
20079
20116
  : create$1();
20080
20117
  if ('__i18nGlobal' in componentOptions) {
@@ -20092,7 +20129,7 @@
20092
20129
  }
20093
20130
  {
20094
20131
  // merge datetime formats
20095
- if (isObject(options.datetimeFormats)) {
20132
+ if (isObject$1(options.datetimeFormats)) {
20096
20133
  const locales = Object.keys(options.datetimeFormats);
20097
20134
  if (locales.length) {
20098
20135
  locales.forEach(locale => {
@@ -20101,7 +20138,7 @@
20101
20138
  }
20102
20139
  }
20103
20140
  // merge number formats
20104
- if (isObject(options.numberFormats)) {
20141
+ if (isObject$1(options.numberFormats)) {
20105
20142
  const locales = Object.keys(options.numberFormats);
20106
20143
  if (locales.length) {
20107
20144
  locales.forEach(locale => {
@@ -20160,19 +20197,19 @@
20160
20197
  __root && _inheritLocale
20161
20198
  ? __root.fallbackLocale.value
20162
20199
  : isString$1(options.fallbackLocale) ||
20163
- isArray$1(options.fallbackLocale) ||
20164
- isPlainObject$1(options.fallbackLocale) ||
20200
+ isArray$2(options.fallbackLocale) ||
20201
+ isPlainObject$2(options.fallbackLocale) ||
20165
20202
  options.fallbackLocale === false
20166
20203
  ? options.fallbackLocale
20167
20204
  : _locale.value);
20168
20205
  const _messages = _ref(getLocaleMessages(_locale.value, options));
20169
20206
  // prettier-ignore
20170
- const _datetimeFormats = _ref(isPlainObject$1(options.datetimeFormats)
20207
+ const _datetimeFormats = _ref(isPlainObject$2(options.datetimeFormats)
20171
20208
  ? options.datetimeFormats
20172
20209
  : { [_locale.value]: {} })
20173
20210
  ;
20174
20211
  // prettier-ignore
20175
- const _numberFormats = _ref(isPlainObject$1(options.numberFormats)
20212
+ const _numberFormats = _ref(isPlainObject$2(options.numberFormats)
20176
20213
  ? options.numberFormats
20177
20214
  : { [_locale.value]: {} })
20178
20215
  ;
@@ -20198,12 +20235,12 @@
20198
20235
  // configure fall back to root
20199
20236
  let _fallbackFormat = !!options.fallbackFormat;
20200
20237
  // runtime missing
20201
- let _missing = isFunction(options.missing) ? options.missing : null;
20202
- let _runtimeMissing = isFunction(options.missing)
20238
+ let _missing = isFunction$1(options.missing) ? options.missing : null;
20239
+ let _runtimeMissing = isFunction$1(options.missing)
20203
20240
  ? defineCoreMissingHandler(options.missing)
20204
20241
  : null;
20205
20242
  // postTranslation handler
20206
- let _postTranslation = isFunction(options.postTranslation)
20243
+ let _postTranslation = isFunction$1(options.postTranslation)
20207
20244
  ? options.postTranslation
20208
20245
  : null;
20209
20246
  // prettier-ignore
@@ -20217,7 +20254,7 @@
20217
20254
  // prettier-ignore
20218
20255
  const _modifiers = __root
20219
20256
  ? __root.modifiers
20220
- : isPlainObject$1(options.modifiers)
20257
+ : isPlainObject$2(options.modifiers)
20221
20258
  ? options.modifiers
20222
20259
  : {};
20223
20260
  // pluralRules
@@ -20249,15 +20286,15 @@
20249
20286
  {
20250
20287
  ctxOptions.datetimeFormats = _datetimeFormats.value;
20251
20288
  ctxOptions.numberFormats = _numberFormats.value;
20252
- ctxOptions.__datetimeFormatters = isPlainObject$1(_context)
20289
+ ctxOptions.__datetimeFormatters = isPlainObject$2(_context)
20253
20290
  ? _context.__datetimeFormatters
20254
20291
  : undefined;
20255
- ctxOptions.__numberFormatters = isPlainObject$1(_context)
20292
+ ctxOptions.__numberFormatters = isPlainObject$2(_context)
20256
20293
  ? _context.__numberFormatters
20257
20294
  : undefined;
20258
20295
  }
20259
20296
  if ((process.env.NODE_ENV !== 'production')) {
20260
- ctxOptions.__v_emitter = isPlainObject$1(_context)
20297
+ ctxOptions.__v_emitter = isPlainObject$2(_context)
20261
20298
  ? _context.__v_emitter
20262
20299
  : undefined;
20263
20300
  }
@@ -20303,7 +20340,7 @@
20303
20340
  const numberFormats = /* #__PURE__*/ vue.computed(() => _numberFormats.value);
20304
20341
  // getPostTranslationHandler
20305
20342
  function getPostTranslationHandler() {
20306
- return isFunction(_postTranslation) ? _postTranslation : null;
20343
+ return isFunction$1(_postTranslation) ? _postTranslation : null;
20307
20344
  }
20308
20345
  // setPostTranslationHandler
20309
20346
  function setPostTranslationHandler(handler) {
@@ -20396,18 +20433,18 @@
20396
20433
  // rt
20397
20434
  function rt(...args) {
20398
20435
  const [arg1, arg2, arg3] = args;
20399
- if (arg3 && !isObject(arg3)) {
20436
+ if (arg3 && !isObject$1(arg3)) {
20400
20437
  throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);
20401
20438
  }
20402
20439
  return t(...[arg1, arg2, assign$2({ resolvedMessage: true }, arg3 || {})]);
20403
20440
  }
20404
20441
  // d
20405
20442
  function d(...args) {
20406
- return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', root => Reflect.apply(root.d, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString$1(val) || isArray$1(val));
20443
+ return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', root => Reflect.apply(root.d, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString$1(val) || isArray$2(val));
20407
20444
  }
20408
20445
  // n
20409
20446
  function n(...args) {
20410
- return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', root => Reflect.apply(root.n, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString$1(val) || isArray$1(val));
20447
+ return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', root => Reflect.apply(root.n, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString$1(val) || isArray$2(val));
20411
20448
  }
20412
20449
  // for custom processor
20413
20450
  function normalize(values) {
@@ -20434,15 +20471,15 @@
20434
20471
  _context.processor = null;
20435
20472
  }
20436
20473
  return ret;
20437
- }, () => parseTranslateArgs(...args), 'translate', root => root[TranslateVNodeSymbol](...args), key => [createTextNode(key)], val => isArray$1(val));
20474
+ }, () => parseTranslateArgs(...args), 'translate', root => root[TranslateVNodeSymbol](...args), key => [createTextNode(key)], val => isArray$2(val));
20438
20475
  }
20439
20476
  // numberParts, using for `i18n-n` component
20440
20477
  function numberParts(...args) {
20441
- return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', root => root[NumberPartsSymbol](...args), NOOP_RETURN_ARRAY, val => isString$1(val) || isArray$1(val));
20478
+ return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', root => root[NumberPartsSymbol](...args), NOOP_RETURN_ARRAY, val => isString$1(val) || isArray$2(val));
20442
20479
  }
20443
20480
  // datetimeParts, using for `i18n-d` component
20444
20481
  function datetimeParts(...args) {
20445
- return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', root => root[DatetimePartsSymbol](...args), NOOP_RETURN_ARRAY, val => isString$1(val) || isArray$1(val));
20482
+ return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', root => root[DatetimePartsSymbol](...args), NOOP_RETURN_ARRAY, val => isString$1(val) || isArray$2(val));
20446
20483
  }
20447
20484
  function setPluralRules(rules) {
20448
20485
  _pluralRules = rules;
@@ -20857,13 +20894,13 @@
20857
20894
  const value = {};
20858
20895
  Object.keys(messages).forEach((key) => {
20859
20896
  const v = messages[key];
20860
- if (isFunction(v) && 'source' in v) {
20897
+ if (isFunction$1(v) && 'source' in v) {
20861
20898
  value[key] = getMessageFunctionDetails(v);
20862
20899
  }
20863
20900
  else if (isMessageAST(v) && v.loc && v.loc.source) {
20864
20901
  value[key] = v.loc.source;
20865
20902
  }
20866
- else if (isObject(v)) {
20903
+ else if (isObject$1(v)) {
20867
20904
  value[key] = getLocaleMessageValue(v);
20868
20905
  }
20869
20906
  else {
@@ -21055,8 +21092,8 @@
21055
21092
  }
21056
21093
  else if (field === 'fallbackLocale' &&
21057
21094
  (isString$1(payload.state.value) ||
21058
- isArray$1(payload.state.value) ||
21059
- isObject(payload.state.value))) {
21095
+ isArray$2(payload.state.value) ||
21096
+ isObject$1(payload.state.value))) {
21060
21097
  composer.fallbackLocale.value = payload.state.value;
21061
21098
  }
21062
21099
  else if (field === 'inheritLocale' && isBoolean$1(payload.state.value)) {
@@ -21074,12 +21111,12 @@
21074
21111
  function convertComposerOptions(options) {
21075
21112
  const locale = isString$1(options.locale) ? options.locale : DEFAULT_LOCALE;
21076
21113
  const fallbackLocale = isString$1(options.fallbackLocale) ||
21077
- isArray$1(options.fallbackLocale) ||
21078
- isPlainObject$1(options.fallbackLocale) ||
21114
+ isArray$2(options.fallbackLocale) ||
21115
+ isPlainObject$2(options.fallbackLocale) ||
21079
21116
  options.fallbackLocale === false
21080
21117
  ? options.fallbackLocale
21081
21118
  : locale;
21082
- const missing = isFunction(options.missing) ? options.missing : undefined;
21119
+ const missing = isFunction$1(options.missing) ? options.missing : undefined;
21083
21120
  const missingWarn = isBoolean$1(options.silentTranslationWarn) ||
21084
21121
  isRegExp$1(options.silentTranslationWarn)
21085
21122
  ? !options.silentTranslationWarn
@@ -21092,9 +21129,9 @@
21092
21129
  ? options.fallbackRoot
21093
21130
  : true;
21094
21131
  const fallbackFormat = !!options.formatFallbackMessages;
21095
- const modifiers = isPlainObject$1(options.modifiers) ? options.modifiers : {};
21132
+ const modifiers = isPlainObject$2(options.modifiers) ? options.modifiers : {};
21096
21133
  const pluralizationRules = options.pluralizationRules;
21097
- const postTranslation = isFunction(options.postTranslation)
21134
+ const postTranslation = isFunction$1(options.postTranslation)
21098
21135
  ? options.postTranslation
21099
21136
  : undefined;
21100
21137
  const warnHtmlMessage = isString$1(options.warnHtmlInMessage)
@@ -21103,7 +21140,7 @@
21103
21140
  const escapeParameter = !!options.escapeParameterHtml;
21104
21141
  const inheritLocale = isBoolean$1(options.sync) ? options.sync : true;
21105
21142
  let messages = options.messages;
21106
- if (isPlainObject$1(options.sharedMessages)) {
21143
+ if (isPlainObject$2(options.sharedMessages)) {
21107
21144
  const sharedMessages = options.sharedMessages;
21108
21145
  const locales = Object.keys(sharedMessages);
21109
21146
  messages = locales.reduce((messages, locale) => {
@@ -21567,7 +21604,7 @@
21567
21604
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
21568
21605
  const children = i18n[TranslateVNodeSymbol](props.keypath, arg, options);
21569
21606
  const assignedAttrs = assign$2(create$1(), attrs);
21570
- const tag = isString$1(props.tag) || isObject(props.tag)
21607
+ const tag = isString$1(props.tag) || isObject$1(props.tag)
21571
21608
  ? props.tag
21572
21609
  : getFragmentableTag();
21573
21610
  return vue.h(tag, assignedAttrs, children);
@@ -21630,7 +21667,7 @@
21630
21667
  const Translation = TranslationImpl;
21631
21668
 
21632
21669
  function isVNode(target) {
21633
- return isArray$1(target) && !isString$1(target[0]);
21670
+ return isArray$2(target) && !isString$1(target[0]);
21634
21671
  }
21635
21672
  function renderFormatter(props, context, slotKeys, partFormatter) {
21636
21673
  const { slots, attrs } = context;
@@ -21643,7 +21680,7 @@
21643
21680
  if (isString$1(props.format)) {
21644
21681
  options.key = props.format;
21645
21682
  }
21646
- else if (isObject(props.format)) {
21683
+ else if (isObject$1(props.format)) {
21647
21684
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
21648
21685
  if (isString$1(props.format.key)) {
21649
21686
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -21658,7 +21695,7 @@
21658
21695
  }
21659
21696
  const parts = partFormatter(...[props.value, options, overrides]);
21660
21697
  let children = [options.key];
21661
- if (isArray$1(parts)) {
21698
+ if (isArray$2(parts)) {
21662
21699
  children = parts.map((part, index) => {
21663
21700
  const slot = slots[part.type];
21664
21701
  const node = slot
@@ -21674,7 +21711,7 @@
21674
21711
  children = [parts];
21675
21712
  }
21676
21713
  const assignedAttrs = assign$2(create$1(), attrs);
21677
- const tag = isString$1(props.tag) || isObject(props.tag)
21714
+ const tag = isString$1(props.tag) || isObject$1(props.tag)
21678
21715
  ? props.tag
21679
21716
  : getFragmentableTag();
21680
21717
  return vue.h(tag, assignedAttrs, children);
@@ -21807,7 +21844,7 @@
21807
21844
  if (isString$1(value)) {
21808
21845
  return { path: value };
21809
21846
  }
21810
- else if (isPlainObject$1(value)) {
21847
+ else if (isPlainObject$2(value)) {
21811
21848
  if (!('path' in value)) {
21812
21849
  throw createI18nError(I18nErrorCodes.REQUIRED_VALUE, 'path');
21813
21850
  }
@@ -21833,8 +21870,8 @@
21833
21870
  return [path, named, options];
21834
21871
  }
21835
21872
 
21836
- function apply(app, i18n, ...options) {
21837
- const pluginOptions = isPlainObject$1(options[0])
21873
+ function apply$1(app, i18n, ...options) {
21874
+ const pluginOptions = isPlainObject$2(options[0])
21838
21875
  ? options[0]
21839
21876
  : {};
21840
21877
  const globalInstall = isBoolean$1(pluginOptions.globalInstall)
@@ -21903,7 +21940,7 @@
21903
21940
  app.__VUE_I18N_SYMBOL__ = symbol;
21904
21941
  app.provide(app.__VUE_I18N_SYMBOL__, i18n);
21905
21942
  // set composer & vuei18n extend hook options from plugin options
21906
- if (isPlainObject$1(options[0])) {
21943
+ if (isPlainObject$2(options[0])) {
21907
21944
  const opts = options[0];
21908
21945
  i18n.__composerExtend =
21909
21946
  opts.__composerExtend;
@@ -21917,7 +21954,7 @@
21917
21954
  }
21918
21955
  // install built-in components and directive
21919
21956
  if (__VUE_I18N_FULL_INSTALL__) {
21920
- apply(app, i18n, ...options);
21957
+ apply$1(app, i18n, ...options);
21921
21958
  }
21922
21959
  // setup mixin for Legacy API
21923
21960
  if (__VUE_I18N_LEGACY_API__ && __legacyMode) {
@@ -26615,7 +26652,7 @@
26615
26652
  return Object.getPrototypeOf(payload) === Object.prototype;
26616
26653
  };
26617
26654
  var isEmptyObject = (payload) => isPlainObject2(payload) && Object.keys(payload).length === 0;
26618
- var isArray = (payload) => Array.isArray(payload);
26655
+ var isArray$1 = (payload) => Array.isArray(payload);
26619
26656
  var isString = (payload) => typeof payload === "string";
26620
26657
  var isNumber = (payload) => typeof payload === "number" && !isNaN(payload);
26621
26658
  var isBoolean = (payload) => typeof payload === "boolean";
@@ -26629,7 +26666,7 @@
26629
26666
  var isPrimitive2 = (payload) => isBoolean(payload) || isNull(payload) || isUndefined(payload) || isNumber(payload) || isString(payload) || isSymbol(payload);
26630
26667
  var isBigint = (payload) => typeof payload === "bigint";
26631
26668
  var isInfinite = (payload) => payload === Infinity || payload === -Infinity;
26632
- var isTypedArray = (payload) => ArrayBuffer.isView(payload) && !(payload instanceof DataView);
26669
+ var isTypedArray$1 = (payload) => ArrayBuffer.isView(payload) && !(payload instanceof DataView);
26633
26670
  var isURL = (payload) => payload instanceof URL;
26634
26671
 
26635
26672
  // ../../node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/pathstringifier.js
@@ -26765,7 +26802,7 @@
26765
26802
  obj[ctor.name] = ctor;
26766
26803
  return obj;
26767
26804
  }, {});
26768
- var typedArrayRule = compositeTransformation(isTypedArray, (v) => ["typed-array", v.constructor.name], (v) => [...v], (v, a) => {
26805
+ var typedArrayRule = compositeTransformation(isTypedArray$1, (v) => ["typed-array", v.constructor.name], (v) => [...v], (v, a) => {
26769
26806
  const ctor = constructorToName[a[1]];
26770
26807
  if (!ctor) {
26771
26808
  throw new Error("Trying to deserialize unknown typed array");
@@ -26837,7 +26874,7 @@
26837
26874
  simpleRulesByAnnotation[rule.annotation] = rule;
26838
26875
  });
26839
26876
  var untransformValue = (json, type, superJson) => {
26840
- if (isArray(type)) {
26877
+ if (isArray$1(type)) {
26841
26878
  switch (type[0]) {
26842
26879
  case "symbol":
26843
26880
  return symbolRule.untransform(json, type, superJson);
@@ -26914,7 +26951,7 @@
26914
26951
  let parent = object;
26915
26952
  for (let i = 0; i < path.length - 1; i++) {
26916
26953
  const key = path[i];
26917
- if (isArray(parent)) {
26954
+ if (isArray$1(parent)) {
26918
26955
  const index = +key;
26919
26956
  parent = parent[index];
26920
26957
  } else if (isPlainObject2(parent)) {
@@ -26941,7 +26978,7 @@
26941
26978
  }
26942
26979
  }
26943
26980
  const lastKey = path[path.length - 1];
26944
- if (isArray(parent)) {
26981
+ if (isArray$1(parent)) {
26945
26982
  parent[+lastKey] = mapper(parent[+lastKey]);
26946
26983
  } else if (isPlainObject2(parent)) {
26947
26984
  parent[lastKey] = mapper(parent[lastKey]);
@@ -26981,7 +27018,7 @@
26981
27018
  if (!tree) {
26982
27019
  return;
26983
27020
  }
26984
- if (!isArray(tree)) {
27021
+ if (!isArray$1(tree)) {
26985
27022
  forEach(tree, (subtree, key) => traverse(subtree, walker2, [...origin, ...parsePath(key)]));
26986
27023
  return;
26987
27024
  }
@@ -27006,7 +27043,7 @@
27006
27043
  plain = setDeep(plain, identicalObjectPath, () => object);
27007
27044
  });
27008
27045
  }
27009
- if (isArray(annotations)) {
27046
+ if (isArray$1(annotations)) {
27010
27047
  const [root, other] = annotations;
27011
27048
  root.forEach((identicalPath) => {
27012
27049
  plain = setDeep(plain, parsePath(identicalPath), () => plain);
@@ -27019,7 +27056,7 @@
27019
27056
  }
27020
27057
  return plain;
27021
27058
  }
27022
- var isDeep = (object, superJson) => isPlainObject2(object) || isArray(object) || isMap(object) || isSet(object) || isInstanceOfRegisteredClass(object, superJson);
27059
+ var isDeep = (object, superJson) => isPlainObject2(object) || isArray$1(object) || isMap(object) || isSet(object) || isInstanceOfRegisteredClass(object, superJson);
27023
27060
  function addIdentity(object, path, identities) {
27024
27061
  const existingSet = identities.get(object);
27025
27062
  if (existingSet) {
@@ -27087,7 +27124,7 @@
27087
27124
  }
27088
27125
  const transformationResult = transformValue(object, superJson);
27089
27126
  const transformed = (_a25 = transformationResult == null ? void 0 : transformationResult.value) != null ? _a25 : object;
27090
- const transformedValue = isArray(transformed) ? [] : {};
27127
+ const transformedValue = isArray$1(transformed) ? [] : {};
27091
27128
  const innerAnnotations = {};
27092
27129
  forEach(transformed, (value, index) => {
27093
27130
  if (index === "__proto__" || index === "constructor" || index === "prototype") {
@@ -27095,7 +27132,7 @@
27095
27132
  }
27096
27133
  const recursiveResult = walker(value, identities, superJson, dedupe, [...path, index], [...objectsInThisPath, object], seenObjects);
27097
27134
  transformedValue[index] = recursiveResult.transformedValue;
27098
- if (isArray(recursiveResult.annotations)) {
27135
+ if (isArray$1(recursiveResult.annotations)) {
27099
27136
  innerAnnotations[index] = recursiveResult.annotations;
27100
27137
  } else if (isPlainObject2(recursiveResult.annotations)) {
27101
27138
  forEach(recursiveResult.annotations, (tree, key) => {
@@ -27372,7 +27409,7 @@
27372
27409
  const setActivePinia = (pinia) => (activePinia = pinia);
27373
27410
  const piniaSymbol = ((process.env.NODE_ENV !== 'production') ? Symbol('pinia') : /* istanbul ignore next */ Symbol());
27374
27411
 
27375
- function isPlainObject(
27412
+ function isPlainObject$1(
27376
27413
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
27377
27414
  o) {
27378
27415
  return (o &&
@@ -28388,8 +28425,8 @@
28388
28425
  continue;
28389
28426
  }
28390
28427
  const targetValue = newState[key];
28391
- if (isPlainObject(targetValue) &&
28392
- isPlainObject(subPatch) &&
28428
+ if (isPlainObject$1(targetValue) &&
28429
+ isPlainObject$1(subPatch) &&
28393
28430
  !vue.isRef(subPatch) &&
28394
28431
  !vue.isReactive(subPatch)) {
28395
28432
  newState[key] = patchObject(targetValue, subPatch);
@@ -28450,8 +28487,8 @@
28450
28487
  continue;
28451
28488
  const subPatch = patchToApply[key];
28452
28489
  const targetValue = target[key];
28453
- if (isPlainObject(targetValue) &&
28454
- isPlainObject(subPatch) &&
28490
+ if (isPlainObject$1(targetValue) &&
28491
+ isPlainObject$1(subPatch) &&
28455
28492
  target.hasOwnProperty(key) &&
28456
28493
  !vue.isRef(subPatch) &&
28457
28494
  !vue.isReactive(subPatch)) {
@@ -28477,7 +28514,7 @@
28477
28514
  * @returns true if `obj` should be hydrated
28478
28515
  */
28479
28516
  function shouldHydrate(obj) {
28480
- return (!isPlainObject(obj) ||
28517
+ return (!isPlainObject$1(obj) ||
28481
28518
  !Object.prototype.hasOwnProperty.call(obj, skipHydrateSymbol));
28482
28519
  }
28483
28520
  const { assign } = Object;
@@ -28816,8 +28853,8 @@
28816
28853
  const newStateTarget = newStore.$state[stateKey];
28817
28854
  const oldStateSource = store.$state[stateKey];
28818
28855
  if (typeof newStateTarget === 'object' &&
28819
- isPlainObject(newStateTarget) &&
28820
- isPlainObject(oldStateSource)) {
28856
+ isPlainObject$1(newStateTarget) &&
28857
+ isPlainObject$1(oldStateSource)) {
28821
28858
  patchObject(newStateTarget, oldStateSource);
28822
28859
  }
28823
28860
  else {
@@ -42821,12 +42858,2175 @@
42821
42858
  ];
42822
42859
  };
42823
42860
 
42861
+ /** Detect free variable `global` from Node.js. */
42862
+ var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
42863
+
42864
+ /** Detect free variable `self`. */
42865
+ var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
42866
+
42867
+ /** Used as a reference to the global object. */
42868
+ var root = freeGlobal || freeSelf || Function('return this')();
42869
+
42870
+ /** Built-in value references. */
42871
+ var Symbol$1 = root.Symbol;
42872
+
42873
+ /** Used for built-in method references. */
42874
+ var objectProto$9 = Object.prototype;
42875
+
42876
+ /** Used to check objects for own properties. */
42877
+ var hasOwnProperty$7 = objectProto$9.hasOwnProperty;
42878
+
42879
+ /**
42880
+ * Used to resolve the
42881
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
42882
+ * of values.
42883
+ */
42884
+ var nativeObjectToString$1 = objectProto$9.toString;
42885
+
42886
+ /** Built-in value references. */
42887
+ var symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : undefined;
42888
+
42889
+ /**
42890
+ * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
42891
+ *
42892
+ * @private
42893
+ * @param {*} value The value to query.
42894
+ * @returns {string} Returns the raw `toStringTag`.
42895
+ */
42896
+ function getRawTag(value) {
42897
+ var isOwn = hasOwnProperty$7.call(value, symToStringTag$1),
42898
+ tag = value[symToStringTag$1];
42899
+
42900
+ try {
42901
+ value[symToStringTag$1] = undefined;
42902
+ var unmasked = true;
42903
+ } catch (e) {}
42904
+
42905
+ var result = nativeObjectToString$1.call(value);
42906
+ if (unmasked) {
42907
+ if (isOwn) {
42908
+ value[symToStringTag$1] = tag;
42909
+ } else {
42910
+ delete value[symToStringTag$1];
42911
+ }
42912
+ }
42913
+ return result;
42914
+ }
42915
+
42916
+ /** Used for built-in method references. */
42917
+ var objectProto$8 = Object.prototype;
42918
+
42919
+ /**
42920
+ * Used to resolve the
42921
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
42922
+ * of values.
42923
+ */
42924
+ var nativeObjectToString = objectProto$8.toString;
42925
+
42926
+ /**
42927
+ * Converts `value` to a string using `Object.prototype.toString`.
42928
+ *
42929
+ * @private
42930
+ * @param {*} value The value to convert.
42931
+ * @returns {string} Returns the converted string.
42932
+ */
42933
+ function objectToString(value) {
42934
+ return nativeObjectToString.call(value);
42935
+ }
42936
+
42937
+ /** `Object#toString` result references. */
42938
+ var nullTag = '[object Null]',
42939
+ undefinedTag = '[object Undefined]';
42940
+
42941
+ /** Built-in value references. */
42942
+ var symToStringTag = Symbol$1 ? Symbol$1.toStringTag : undefined;
42943
+
42944
+ /**
42945
+ * The base implementation of `getTag` without fallbacks for buggy environments.
42946
+ *
42947
+ * @private
42948
+ * @param {*} value The value to query.
42949
+ * @returns {string} Returns the `toStringTag`.
42950
+ */
42951
+ function baseGetTag(value) {
42952
+ if (value == null) {
42953
+ return value === undefined ? undefinedTag : nullTag;
42954
+ }
42955
+ return (symToStringTag && symToStringTag in Object(value))
42956
+ ? getRawTag(value)
42957
+ : objectToString(value);
42958
+ }
42959
+
42960
+ /**
42961
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
42962
+ * and has a `typeof` result of "object".
42963
+ *
42964
+ * @static
42965
+ * @memberOf _
42966
+ * @since 4.0.0
42967
+ * @category Lang
42968
+ * @param {*} value The value to check.
42969
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
42970
+ * @example
42971
+ *
42972
+ * _.isObjectLike({});
42973
+ * // => true
42974
+ *
42975
+ * _.isObjectLike([1, 2, 3]);
42976
+ * // => true
42977
+ *
42978
+ * _.isObjectLike(_.noop);
42979
+ * // => false
42980
+ *
42981
+ * _.isObjectLike(null);
42982
+ * // => false
42983
+ */
42984
+ function isObjectLike(value) {
42985
+ return value != null && typeof value == 'object';
42986
+ }
42987
+
42988
+ /**
42989
+ * Checks if `value` is classified as an `Array` object.
42990
+ *
42991
+ * @static
42992
+ * @memberOf _
42993
+ * @since 0.1.0
42994
+ * @category Lang
42995
+ * @param {*} value The value to check.
42996
+ * @returns {boolean} Returns `true` if `value` is an array, else `false`.
42997
+ * @example
42998
+ *
42999
+ * _.isArray([1, 2, 3]);
43000
+ * // => true
43001
+ *
43002
+ * _.isArray(document.body.children);
43003
+ * // => false
43004
+ *
43005
+ * _.isArray('abc');
43006
+ * // => false
43007
+ *
43008
+ * _.isArray(_.noop);
43009
+ * // => false
43010
+ */
43011
+ var isArray = Array.isArray;
43012
+
43013
+ /**
43014
+ * Checks if `value` is the
43015
+ * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
43016
+ * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
43017
+ *
43018
+ * @static
43019
+ * @memberOf _
43020
+ * @since 0.1.0
43021
+ * @category Lang
43022
+ * @param {*} value The value to check.
43023
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
43024
+ * @example
43025
+ *
43026
+ * _.isObject({});
43027
+ * // => true
43028
+ *
43029
+ * _.isObject([1, 2, 3]);
43030
+ * // => true
43031
+ *
43032
+ * _.isObject(_.noop);
43033
+ * // => true
43034
+ *
43035
+ * _.isObject(null);
43036
+ * // => false
43037
+ */
43038
+ function isObject(value) {
43039
+ var type = typeof value;
43040
+ return value != null && (type == 'object' || type == 'function');
43041
+ }
43042
+
43043
+ /**
43044
+ * This method returns the first argument it receives.
43045
+ *
43046
+ * @static
43047
+ * @since 0.1.0
43048
+ * @memberOf _
43049
+ * @category Util
43050
+ * @param {*} value Any value.
43051
+ * @returns {*} Returns `value`.
43052
+ * @example
43053
+ *
43054
+ * var object = { 'a': 1 };
43055
+ *
43056
+ *
43057
+ * // => true
43058
+ */
43059
+ function identity(value) {
43060
+ return value;
43061
+ }
43062
+
43063
+ /** `Object#toString` result references. */
43064
+ var asyncTag = '[object AsyncFunction]',
43065
+ funcTag$1 = '[object Function]',
43066
+ genTag = '[object GeneratorFunction]',
43067
+ proxyTag = '[object Proxy]';
43068
+
43069
+ /**
43070
+ * Checks if `value` is classified as a `Function` object.
43071
+ *
43072
+ * @static
43073
+ * @memberOf _
43074
+ * @since 0.1.0
43075
+ * @category Lang
43076
+ * @param {*} value The value to check.
43077
+ * @returns {boolean} Returns `true` if `value` is a function, else `false`.
43078
+ * @example
43079
+ *
43080
+ * _.isFunction(_);
43081
+ * // => true
43082
+ *
43083
+ * _.isFunction(/abc/);
43084
+ * // => false
43085
+ */
43086
+ function isFunction(value) {
43087
+ if (!isObject(value)) {
43088
+ return false;
43089
+ }
43090
+ // The use of `Object#toString` avoids issues with the `typeof` operator
43091
+ // in Safari 9 which returns 'object' for typed arrays and other constructors.
43092
+ var tag = baseGetTag(value);
43093
+ return tag == funcTag$1 || tag == genTag || tag == asyncTag || tag == proxyTag;
43094
+ }
43095
+
43096
+ /** Used to detect overreaching core-js shims. */
43097
+ var coreJsData = root['__core-js_shared__'];
43098
+
43099
+ /** Used to detect methods masquerading as native. */
43100
+ var maskSrcKey = (function() {
43101
+ var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
43102
+ return uid ? ('Symbol(src)_1.' + uid) : '';
43103
+ }());
43104
+
43105
+ /**
43106
+ * Checks if `func` has its source masked.
43107
+ *
43108
+ * @private
43109
+ * @param {Function} func The function to check.
43110
+ * @returns {boolean} Returns `true` if `func` is masked, else `false`.
43111
+ */
43112
+ function isMasked(func) {
43113
+ return !!maskSrcKey && (maskSrcKey in func);
43114
+ }
43115
+
43116
+ /** Used for built-in method references. */
43117
+ var funcProto$2 = Function.prototype;
43118
+
43119
+ /** Used to resolve the decompiled source of functions. */
43120
+ var funcToString$2 = funcProto$2.toString;
43121
+
43122
+ /**
43123
+ * Converts `func` to its source code.
43124
+ *
43125
+ * @private
43126
+ * @param {Function} func The function to convert.
43127
+ * @returns {string} Returns the source code.
43128
+ */
43129
+ function toSource(func) {
43130
+ if (func != null) {
43131
+ try {
43132
+ return funcToString$2.call(func);
43133
+ } catch (e) {}
43134
+ try {
43135
+ return (func + '');
43136
+ } catch (e) {}
43137
+ }
43138
+ return '';
43139
+ }
43140
+
43141
+ /**
43142
+ * Used to match `RegExp`
43143
+ * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
43144
+ */
43145
+ var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
43146
+
43147
+ /** Used to detect host constructors (Safari). */
43148
+ var reIsHostCtor = /^\[object .+?Constructor\]$/;
43149
+
43150
+ /** Used for built-in method references. */
43151
+ var funcProto$1 = Function.prototype,
43152
+ objectProto$7 = Object.prototype;
43153
+
43154
+ /** Used to resolve the decompiled source of functions. */
43155
+ var funcToString$1 = funcProto$1.toString;
43156
+
43157
+ /** Used to check objects for own properties. */
43158
+ var hasOwnProperty$6 = objectProto$7.hasOwnProperty;
43159
+
43160
+ /** Used to detect if a method is native. */
43161
+ var reIsNative = RegExp('^' +
43162
+ funcToString$1.call(hasOwnProperty$6).replace(reRegExpChar, '\\$&')
43163
+ .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
43164
+ );
43165
+
43166
+ /**
43167
+ * The base implementation of `_.isNative` without bad shim checks.
43168
+ *
43169
+ * @private
43170
+ * @param {*} value The value to check.
43171
+ * @returns {boolean} Returns `true` if `value` is a native function,
43172
+ * else `false`.
43173
+ */
43174
+ function baseIsNative(value) {
43175
+ if (!isObject(value) || isMasked(value)) {
43176
+ return false;
43177
+ }
43178
+ var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
43179
+ return pattern.test(toSource(value));
43180
+ }
43181
+
43182
+ /**
43183
+ * Gets the value at `key` of `object`.
43184
+ *
43185
+ * @private
43186
+ * @param {Object} [object] The object to query.
43187
+ * @param {string} key The key of the property to get.
43188
+ * @returns {*} Returns the property value.
43189
+ */
43190
+ function getValue(object, key) {
43191
+ return object == null ? undefined : object[key];
43192
+ }
43193
+
43194
+ /**
43195
+ * Gets the native function at `key` of `object`.
43196
+ *
43197
+ * @private
43198
+ * @param {Object} object The object to query.
43199
+ * @param {string} key The key of the method to get.
43200
+ * @returns {*} Returns the function if it's native, else `undefined`.
43201
+ */
43202
+ function getNative(object, key) {
43203
+ var value = getValue(object, key);
43204
+ return baseIsNative(value) ? value : undefined;
43205
+ }
43206
+
43207
+ /** Built-in value references. */
43208
+ var objectCreate = Object.create;
43209
+
43210
+ /**
43211
+ * The base implementation of `_.create` without support for assigning
43212
+ * properties to the created object.
43213
+ *
43214
+ * @private
43215
+ * @param {Object} proto The object to inherit from.
43216
+ * @returns {Object} Returns the new object.
43217
+ */
43218
+ var baseCreate = (function() {
43219
+ function object() {}
43220
+ return function(proto) {
43221
+ if (!isObject(proto)) {
43222
+ return {};
43223
+ }
43224
+ if (objectCreate) {
43225
+ return objectCreate(proto);
43226
+ }
43227
+ object.prototype = proto;
43228
+ var result = new object;
43229
+ object.prototype = undefined;
43230
+ return result;
43231
+ };
43232
+ }());
43233
+
43234
+ /**
43235
+ * A faster alternative to `Function#apply`, this function invokes `func`
43236
+ * with the `this` binding of `thisArg` and the arguments of `args`.
43237
+ *
43238
+ * @private
43239
+ * @param {Function} func The function to invoke.
43240
+ * @param {*} thisArg The `this` binding of `func`.
43241
+ * @param {Array} args The arguments to invoke `func` with.
43242
+ * @returns {*} Returns the result of `func`.
43243
+ */
43244
+ function apply(func, thisArg, args) {
43245
+ switch (args.length) {
43246
+ case 0: return func.call(thisArg);
43247
+ case 1: return func.call(thisArg, args[0]);
43248
+ case 2: return func.call(thisArg, args[0], args[1]);
43249
+ case 3: return func.call(thisArg, args[0], args[1], args[2]);
43250
+ }
43251
+ return func.apply(thisArg, args);
43252
+ }
43253
+
43254
+ /**
43255
+ * Copies the values of `source` to `array`.
43256
+ *
43257
+ * @private
43258
+ * @param {Array} source The array to copy values from.
43259
+ * @param {Array} [array=[]] The array to copy values to.
43260
+ * @returns {Array} Returns `array`.
43261
+ */
43262
+ function copyArray(source, array) {
43263
+ var index = -1,
43264
+ length = source.length;
43265
+
43266
+ array || (array = Array(length));
43267
+ while (++index < length) {
43268
+ array[index] = source[index];
43269
+ }
43270
+ return array;
43271
+ }
43272
+
43273
+ /** Used to detect hot functions by number of calls within a span of milliseconds. */
43274
+ var HOT_COUNT = 800,
43275
+ HOT_SPAN = 16;
43276
+
43277
+ /* Built-in method references for those with the same name as other `lodash` methods. */
43278
+ var nativeNow = Date.now;
43279
+
43280
+ /**
43281
+ * Creates a function that'll short out and invoke `identity` instead
43282
+ * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`
43283
+ * milliseconds.
43284
+ *
43285
+ * @private
43286
+ * @param {Function} func The function to restrict.
43287
+ * @returns {Function} Returns the new shortable function.
43288
+ */
43289
+ function shortOut(func) {
43290
+ var count = 0,
43291
+ lastCalled = 0;
43292
+
43293
+ return function() {
43294
+ var stamp = nativeNow(),
43295
+ remaining = HOT_SPAN - (stamp - lastCalled);
43296
+
43297
+ lastCalled = stamp;
43298
+ if (remaining > 0) {
43299
+ if (++count >= HOT_COUNT) {
43300
+ return arguments[0];
43301
+ }
43302
+ } else {
43303
+ count = 0;
43304
+ }
43305
+ return func.apply(undefined, arguments);
43306
+ };
43307
+ }
43308
+
43309
+ /**
43310
+ * Creates a function that returns `value`.
43311
+ *
43312
+ * @static
43313
+ * @memberOf _
43314
+ * @since 2.4.0
43315
+ * @category Util
43316
+ * @param {*} value The value to return from the new function.
43317
+ * @returns {Function} Returns the new constant function.
43318
+ * @example
43319
+ *
43320
+ * var objects = _.times(2, _.constant({ 'a': 1 }));
43321
+ *
43322
+ *
43323
+ * // => [{ 'a': 1 }, { 'a': 1 }]
43324
+ *
43325
+ *
43326
+ * // => true
43327
+ */
43328
+ function constant(value) {
43329
+ return function() {
43330
+ return value;
43331
+ };
43332
+ }
43333
+
43334
+ var defineProperty = (function() {
43335
+ try {
43336
+ var func = getNative(Object, 'defineProperty');
43337
+ func({}, '', {});
43338
+ return func;
43339
+ } catch (e) {}
43340
+ }());
43341
+
43342
+ /**
43343
+ * The base implementation of `setToString` without support for hot loop shorting.
43344
+ *
43345
+ * @private
43346
+ * @param {Function} func The function to modify.
43347
+ * @param {Function} string The `toString` result.
43348
+ * @returns {Function} Returns `func`.
43349
+ */
43350
+ var baseSetToString = !defineProperty ? identity : function(func, string) {
43351
+ return defineProperty(func, 'toString', {
43352
+ 'configurable': true,
43353
+ 'enumerable': false,
43354
+ 'value': constant(string),
43355
+ 'writable': true
43356
+ });
43357
+ };
43358
+
43359
+ /**
43360
+ * Sets the `toString` method of `func` to return `string`.
43361
+ *
43362
+ * @private
43363
+ * @param {Function} func The function to modify.
43364
+ * @param {Function} string The `toString` result.
43365
+ * @returns {Function} Returns `func`.
43366
+ */
43367
+ var setToString = shortOut(baseSetToString);
43368
+
43369
+ /** Used as references for various `Number` constants. */
43370
+ var MAX_SAFE_INTEGER$1 = 9007199254740991;
43371
+
43372
+ /** Used to detect unsigned integer values. */
43373
+ var reIsUint = /^(?:0|[1-9]\d*)$/;
43374
+
43375
+ /**
43376
+ * Checks if `value` is a valid array-like index.
43377
+ *
43378
+ * @private
43379
+ * @param {*} value The value to check.
43380
+ * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
43381
+ * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
43382
+ */
43383
+ function isIndex(value, length) {
43384
+ var type = typeof value;
43385
+ length = length == null ? MAX_SAFE_INTEGER$1 : length;
43386
+
43387
+ return !!length &&
43388
+ (type == 'number' ||
43389
+ (type != 'symbol' && reIsUint.test(value))) &&
43390
+ (value > -1 && value % 1 == 0 && value < length);
43391
+ }
43392
+
43393
+ /**
43394
+ * The base implementation of `assignValue` and `assignMergeValue` without
43395
+ * value checks.
43396
+ *
43397
+ * @private
43398
+ * @param {Object} object The object to modify.
43399
+ * @param {string} key The key of the property to assign.
43400
+ * @param {*} value The value to assign.
43401
+ */
43402
+ function baseAssignValue(object, key, value) {
43403
+ if (key == '__proto__' && defineProperty) {
43404
+ defineProperty(object, key, {
43405
+ 'configurable': true,
43406
+ 'enumerable': true,
43407
+ 'value': value,
43408
+ 'writable': true
43409
+ });
43410
+ } else {
43411
+ object[key] = value;
43412
+ }
43413
+ }
43414
+
43415
+ /**
43416
+ * Performs a
43417
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
43418
+ * comparison between two values to determine if they are equivalent.
43419
+ *
43420
+ * @static
43421
+ * @memberOf _
43422
+ * @since 4.0.0
43423
+ * @category Lang
43424
+ * @param {*} value The value to compare.
43425
+ * @param {*} other The other value to compare.
43426
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
43427
+ * @example
43428
+ *
43429
+ * var object = { 'a': 1 };
43430
+ * var other = { 'a': 1 };
43431
+ *
43432
+ * _.eq(object, object);
43433
+ * // => true
43434
+ *
43435
+ * _.eq(object, other);
43436
+ * // => false
43437
+ *
43438
+ * _.eq('a', 'a');
43439
+ * // => true
43440
+ *
43441
+ * _.eq('a', Object('a'));
43442
+ * // => false
43443
+ *
43444
+ * _.eq(NaN, NaN);
43445
+ * // => true
43446
+ */
43447
+ function eq(value, other) {
43448
+ return value === other || (value !== value && other !== other);
43449
+ }
43450
+
43451
+ /** Used for built-in method references. */
43452
+ var objectProto$6 = Object.prototype;
43453
+
43454
+ /** Used to check objects for own properties. */
43455
+ var hasOwnProperty$5 = objectProto$6.hasOwnProperty;
43456
+
43457
+ /**
43458
+ * Assigns `value` to `key` of `object` if the existing value is not equivalent
43459
+ * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
43460
+ * for equality comparisons.
43461
+ *
43462
+ * @private
43463
+ * @param {Object} object The object to modify.
43464
+ * @param {string} key The key of the property to assign.
43465
+ * @param {*} value The value to assign.
43466
+ */
43467
+ function assignValue(object, key, value) {
43468
+ var objValue = object[key];
43469
+ if (!(hasOwnProperty$5.call(object, key) && eq(objValue, value)) ||
43470
+ (value === undefined && !(key in object))) {
43471
+ baseAssignValue(object, key, value);
43472
+ }
43473
+ }
43474
+
43475
+ /**
43476
+ * Copies properties of `source` to `object`.
43477
+ *
43478
+ * @private
43479
+ * @param {Object} source The object to copy properties from.
43480
+ * @param {Array} props The property identifiers to copy.
43481
+ * @param {Object} [object={}] The object to copy properties to.
43482
+ * @param {Function} [customizer] The function to customize copied values.
43483
+ * @returns {Object} Returns `object`.
43484
+ */
43485
+ function copyObject(source, props, object, customizer) {
43486
+ var isNew = !object;
43487
+ object || (object = {});
43488
+
43489
+ var index = -1,
43490
+ length = props.length;
43491
+
43492
+ while (++index < length) {
43493
+ var key = props[index];
43494
+
43495
+ var newValue = undefined;
43496
+
43497
+ if (newValue === undefined) {
43498
+ newValue = source[key];
43499
+ }
43500
+ if (isNew) {
43501
+ baseAssignValue(object, key, newValue);
43502
+ } else {
43503
+ assignValue(object, key, newValue);
43504
+ }
43505
+ }
43506
+ return object;
43507
+ }
43508
+
43509
+ /* Built-in method references for those with the same name as other `lodash` methods. */
43510
+ var nativeMax = Math.max;
43511
+
43512
+ /**
43513
+ * A specialized version of `baseRest` which transforms the rest array.
43514
+ *
43515
+ * @private
43516
+ * @param {Function} func The function to apply a rest parameter to.
43517
+ * @param {number} [start=func.length-1] The start position of the rest parameter.
43518
+ * @param {Function} transform The rest array transform.
43519
+ * @returns {Function} Returns the new function.
43520
+ */
43521
+ function overRest(func, start, transform) {
43522
+ start = nativeMax(start === undefined ? (func.length - 1) : start, 0);
43523
+ return function() {
43524
+ var args = arguments,
43525
+ index = -1,
43526
+ length = nativeMax(args.length - start, 0),
43527
+ array = Array(length);
43528
+
43529
+ while (++index < length) {
43530
+ array[index] = args[start + index];
43531
+ }
43532
+ index = -1;
43533
+ var otherArgs = Array(start + 1);
43534
+ while (++index < start) {
43535
+ otherArgs[index] = args[index];
43536
+ }
43537
+ otherArgs[start] = transform(array);
43538
+ return apply(func, this, otherArgs);
43539
+ };
43540
+ }
43541
+
43542
+ /**
43543
+ * The base implementation of `_.rest` which doesn't validate or coerce arguments.
43544
+ *
43545
+ * @private
43546
+ * @param {Function} func The function to apply a rest parameter to.
43547
+ * @param {number} [start=func.length-1] The start position of the rest parameter.
43548
+ * @returns {Function} Returns the new function.
43549
+ */
43550
+ function baseRest(func, start) {
43551
+ return setToString(overRest(func, start, identity), func + '');
43552
+ }
43553
+
43554
+ /** Used as references for various `Number` constants. */
43555
+ var MAX_SAFE_INTEGER = 9007199254740991;
43556
+
43557
+ /**
43558
+ * Checks if `value` is a valid array-like length.
43559
+ *
43560
+ * **Note:** This method is loosely based on
43561
+ * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
43562
+ *
43563
+ * @static
43564
+ * @memberOf _
43565
+ * @since 4.0.0
43566
+ * @category Lang
43567
+ * @param {*} value The value to check.
43568
+ * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
43569
+ * @example
43570
+ *
43571
+ * _.isLength(3);
43572
+ * // => true
43573
+ *
43574
+ * _.isLength(Number.MIN_VALUE);
43575
+ * // => false
43576
+ *
43577
+ * _.isLength(Infinity);
43578
+ * // => false
43579
+ *
43580
+ * _.isLength('3');
43581
+ * // => false
43582
+ */
43583
+ function isLength(value) {
43584
+ return typeof value == 'number' &&
43585
+ value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
43586
+ }
43587
+
43588
+ /**
43589
+ * Checks if `value` is array-like. A value is considered array-like if it's
43590
+ * not a function and has a `value.length` that's an integer greater than or
43591
+ * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
43592
+ *
43593
+ * @static
43594
+ * @memberOf _
43595
+ * @since 4.0.0
43596
+ * @category Lang
43597
+ * @param {*} value The value to check.
43598
+ * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
43599
+ * @example
43600
+ *
43601
+ * _.isArrayLike([1, 2, 3]);
43602
+ * // => true
43603
+ *
43604
+ * _.isArrayLike(document.body.children);
43605
+ * // => true
43606
+ *
43607
+ * _.isArrayLike('abc');
43608
+ * // => true
43609
+ *
43610
+ * _.isArrayLike(_.noop);
43611
+ * // => false
43612
+ */
43613
+ function isArrayLike(value) {
43614
+ return value != null && isLength(value.length) && !isFunction(value);
43615
+ }
43616
+
43617
+ /**
43618
+ * Checks if the given arguments are from an iteratee call.
43619
+ *
43620
+ * @private
43621
+ * @param {*} value The potential iteratee value argument.
43622
+ * @param {*} index The potential iteratee index or key argument.
43623
+ * @param {*} object The potential iteratee object argument.
43624
+ * @returns {boolean} Returns `true` if the arguments are from an iteratee call,
43625
+ * else `false`.
43626
+ */
43627
+ function isIterateeCall(value, index, object) {
43628
+ if (!isObject(object)) {
43629
+ return false;
43630
+ }
43631
+ var type = typeof index;
43632
+ if (type == 'number'
43633
+ ? (isArrayLike(object) && isIndex(index, object.length))
43634
+ : (type == 'string' && index in object)
43635
+ ) {
43636
+ return eq(object[index], value);
43637
+ }
43638
+ return false;
43639
+ }
43640
+
43641
+ /**
43642
+ * Creates a function like `_.assign`.
43643
+ *
43644
+ * @private
43645
+ * @param {Function} assigner The function to assign values.
43646
+ * @returns {Function} Returns the new assigner function.
43647
+ */
43648
+ function createAssigner(assigner) {
43649
+ return baseRest(function(object, sources) {
43650
+ var index = -1,
43651
+ length = sources.length,
43652
+ customizer = length > 1 ? sources[length - 1] : undefined,
43653
+ guard = length > 2 ? sources[2] : undefined;
43654
+
43655
+ customizer = (assigner.length > 3 && typeof customizer == 'function')
43656
+ ? (length--, customizer)
43657
+ : undefined;
43658
+
43659
+ if (guard && isIterateeCall(sources[0], sources[1], guard)) {
43660
+ customizer = length < 3 ? undefined : customizer;
43661
+ length = 1;
43662
+ }
43663
+ object = Object(object);
43664
+ while (++index < length) {
43665
+ var source = sources[index];
43666
+ if (source) {
43667
+ assigner(object, source, index, customizer);
43668
+ }
43669
+ }
43670
+ return object;
43671
+ });
43672
+ }
43673
+
43674
+ /** Used for built-in method references. */
43675
+ var objectProto$5 = Object.prototype;
43676
+
43677
+ /**
43678
+ * Checks if `value` is likely a prototype object.
43679
+ *
43680
+ * @private
43681
+ * @param {*} value The value to check.
43682
+ * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
43683
+ */
43684
+ function isPrototype(value) {
43685
+ var Ctor = value && value.constructor,
43686
+ proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$5;
43687
+
43688
+ return value === proto;
43689
+ }
43690
+
43691
+ /**
43692
+ * The base implementation of `_.times` without support for iteratee shorthands
43693
+ * or max array length checks.
43694
+ *
43695
+ * @private
43696
+ * @param {number} n The number of times to invoke `iteratee`.
43697
+ * @param {Function} iteratee The function invoked per iteration.
43698
+ * @returns {Array} Returns the array of results.
43699
+ */
43700
+ function baseTimes(n, iteratee) {
43701
+ var index = -1,
43702
+ result = Array(n);
43703
+
43704
+ while (++index < n) {
43705
+ result[index] = iteratee(index);
43706
+ }
43707
+ return result;
43708
+ }
43709
+
43710
+ /** `Object#toString` result references. */
43711
+ var argsTag$1 = '[object Arguments]';
43712
+
43713
+ /**
43714
+ * The base implementation of `_.isArguments`.
43715
+ *
43716
+ * @private
43717
+ * @param {*} value The value to check.
43718
+ * @returns {boolean} Returns `true` if `value` is an `arguments` object,
43719
+ */
43720
+ function baseIsArguments(value) {
43721
+ return isObjectLike(value) && baseGetTag(value) == argsTag$1;
43722
+ }
43723
+
43724
+ /** Used for built-in method references. */
43725
+ var objectProto$4 = Object.prototype;
43726
+
43727
+ /** Used to check objects for own properties. */
43728
+ var hasOwnProperty$4 = objectProto$4.hasOwnProperty;
43729
+
43730
+ /** Built-in value references. */
43731
+ var propertyIsEnumerable = objectProto$4.propertyIsEnumerable;
43732
+
43733
+ /**
43734
+ * Checks if `value` is likely an `arguments` object.
43735
+ *
43736
+ * @static
43737
+ * @memberOf _
43738
+ * @since 0.1.0
43739
+ * @category Lang
43740
+ * @param {*} value The value to check.
43741
+ * @returns {boolean} Returns `true` if `value` is an `arguments` object,
43742
+ * else `false`.
43743
+ * @example
43744
+ *
43745
+ * _.isArguments(function() { return arguments; }());
43746
+ * // => true
43747
+ *
43748
+ * _.isArguments([1, 2, 3]);
43749
+ * // => false
43750
+ */
43751
+ var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {
43752
+ return isObjectLike(value) && hasOwnProperty$4.call(value, 'callee') &&
43753
+ !propertyIsEnumerable.call(value, 'callee');
43754
+ };
43755
+
43756
+ /**
43757
+ * This method returns `false`.
43758
+ *
43759
+ * @static
43760
+ * @memberOf _
43761
+ * @since 4.13.0
43762
+ * @category Util
43763
+ * @returns {boolean} Returns `false`.
43764
+ * @example
43765
+ *
43766
+ * _.times(2, _.stubFalse);
43767
+ * // => [false, false]
43768
+ */
43769
+ function stubFalse() {
43770
+ return false;
43771
+ }
43772
+
43773
+ /** Detect free variable `exports`. */
43774
+ var freeExports$2 = typeof exports == 'object' && exports && !exports.nodeType && exports;
43775
+
43776
+ /** Detect free variable `module`. */
43777
+ var freeModule$2 = freeExports$2 && typeof module == 'object' && module && !module.nodeType && module;
43778
+
43779
+ /** Detect the popular CommonJS extension `module.exports`. */
43780
+ var moduleExports$2 = freeModule$2 && freeModule$2.exports === freeExports$2;
43781
+
43782
+ /** Built-in value references. */
43783
+ var Buffer$2 = moduleExports$2 ? root.Buffer : undefined;
43784
+
43785
+ /* Built-in method references for those with the same name as other `lodash` methods. */
43786
+ var nativeIsBuffer = Buffer$2 ? Buffer$2.isBuffer : undefined;
43787
+
43788
+ /**
43789
+ * Checks if `value` is a buffer.
43790
+ *
43791
+ * @static
43792
+ * @memberOf _
43793
+ * @since 4.3.0
43794
+ * @category Lang
43795
+ * @param {*} value The value to check.
43796
+ * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
43797
+ * @example
43798
+ *
43799
+ * _.isBuffer(new Buffer(2));
43800
+ * // => true
43801
+ *
43802
+ * _.isBuffer(new Uint8Array(2));
43803
+ * // => false
43804
+ */
43805
+ var isBuffer = nativeIsBuffer || stubFalse;
43806
+
43807
+ /** `Object#toString` result references. */
43808
+ var argsTag = '[object Arguments]',
43809
+ arrayTag = '[object Array]',
43810
+ boolTag = '[object Boolean]',
43811
+ dateTag = '[object Date]',
43812
+ errorTag = '[object Error]',
43813
+ funcTag = '[object Function]',
43814
+ mapTag = '[object Map]',
43815
+ numberTag = '[object Number]',
43816
+ objectTag$1 = '[object Object]',
43817
+ regexpTag = '[object RegExp]',
43818
+ setTag = '[object Set]',
43819
+ stringTag = '[object String]',
43820
+ weakMapTag = '[object WeakMap]';
43821
+
43822
+ var arrayBufferTag = '[object ArrayBuffer]',
43823
+ dataViewTag = '[object DataView]',
43824
+ float32Tag = '[object Float32Array]',
43825
+ float64Tag = '[object Float64Array]',
43826
+ int8Tag = '[object Int8Array]',
43827
+ int16Tag = '[object Int16Array]',
43828
+ int32Tag = '[object Int32Array]',
43829
+ uint8Tag = '[object Uint8Array]',
43830
+ uint8ClampedTag = '[object Uint8ClampedArray]',
43831
+ uint16Tag = '[object Uint16Array]',
43832
+ uint32Tag = '[object Uint32Array]';
43833
+
43834
+ /** Used to identify `toStringTag` values of typed arrays. */
43835
+ var typedArrayTags = {};
43836
+ typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
43837
+ typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
43838
+ typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
43839
+ typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
43840
+ typedArrayTags[uint32Tag] = true;
43841
+ typedArrayTags[argsTag] = typedArrayTags[arrayTag] =
43842
+ typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
43843
+ typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =
43844
+ typedArrayTags[errorTag] = typedArrayTags[funcTag] =
43845
+ typedArrayTags[mapTag] = typedArrayTags[numberTag] =
43846
+ typedArrayTags[objectTag$1] = typedArrayTags[regexpTag] =
43847
+ typedArrayTags[setTag] = typedArrayTags[stringTag] =
43848
+ typedArrayTags[weakMapTag] = false;
43849
+
43850
+ /**
43851
+ * The base implementation of `_.isTypedArray` without Node.js optimizations.
43852
+ *
43853
+ * @private
43854
+ * @param {*} value The value to check.
43855
+ * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
43856
+ */
43857
+ function baseIsTypedArray(value) {
43858
+ return isObjectLike(value) &&
43859
+ isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
43860
+ }
43861
+
43862
+ /**
43863
+ * The base implementation of `_.unary` without support for storing metadata.
43864
+ *
43865
+ * @private
43866
+ * @param {Function} func The function to cap arguments for.
43867
+ * @returns {Function} Returns the new capped function.
43868
+ */
43869
+ function baseUnary(func) {
43870
+ return function(value) {
43871
+ return func(value);
43872
+ };
43873
+ }
43874
+
43875
+ /** Detect free variable `exports`. */
43876
+ var freeExports$1 = typeof exports == 'object' && exports && !exports.nodeType && exports;
43877
+
43878
+ /** Detect free variable `module`. */
43879
+ var freeModule$1 = freeExports$1 && typeof module == 'object' && module && !module.nodeType && module;
43880
+
43881
+ /** Detect the popular CommonJS extension `module.exports`. */
43882
+ var moduleExports$1 = freeModule$1 && freeModule$1.exports === freeExports$1;
43883
+
43884
+ /** Detect free variable `process` from Node.js. */
43885
+ var freeProcess = moduleExports$1 && freeGlobal.process;
43886
+
43887
+ /** Used to access faster Node.js helpers. */
43888
+ var nodeUtil = (function() {
43889
+ try {
43890
+ // Use `util.types` for Node.js 10+.
43891
+ var types = freeModule$1 && freeModule$1.require && freeModule$1.require('util').types;
43892
+
43893
+ if (types) {
43894
+ return types;
43895
+ }
43896
+
43897
+ // Legacy `process.binding('util')` for Node.js < 10.
43898
+ return freeProcess && freeProcess.binding && freeProcess.binding('util');
43899
+ } catch (e) {}
43900
+ }());
43901
+
43902
+ /* Node.js helper references. */
43903
+ var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
43904
+
43905
+ /**
43906
+ * Checks if `value` is classified as a typed array.
43907
+ *
43908
+ * @static
43909
+ * @memberOf _
43910
+ * @since 3.0.0
43911
+ * @category Lang
43912
+ * @param {*} value The value to check.
43913
+ * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
43914
+ * @example
43915
+ *
43916
+ * _.isTypedArray(new Uint8Array);
43917
+ * // => true
43918
+ *
43919
+ * _.isTypedArray([]);
43920
+ * // => false
43921
+ */
43922
+ var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
43923
+
43924
+ /**
43925
+ * Creates an array of the enumerable property names of the array-like `value`.
43926
+ *
43927
+ * @private
43928
+ * @param {*} value The value to query.
43929
+ * @param {boolean} inherited Specify returning inherited property names.
43930
+ * @returns {Array} Returns the array of property names.
43931
+ */
43932
+ function arrayLikeKeys(value, inherited) {
43933
+ var isArr = isArray(value),
43934
+ isArg = !isArr && isArguments(value),
43935
+ isBuff = !isArr && !isArg && isBuffer(value),
43936
+ isType = !isArr && !isArg && !isBuff && isTypedArray(value),
43937
+ skipIndexes = isArr || isArg || isBuff || isType,
43938
+ result = skipIndexes ? baseTimes(value.length, String) : [],
43939
+ length = result.length;
43940
+
43941
+ for (var key in value) {
43942
+ if (!(skipIndexes && (
43943
+ // Safari 9 has enumerable `arguments.length` in strict mode.
43944
+ key == 'length' ||
43945
+ // Node.js 0.10 has enumerable non-index properties on buffers.
43946
+ (isBuff && (key == 'offset' || key == 'parent')) ||
43947
+ // PhantomJS 2 has enumerable non-index properties on typed arrays.
43948
+ (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||
43949
+ // Skip index properties.
43950
+ isIndex(key, length)
43951
+ ))) {
43952
+ result.push(key);
43953
+ }
43954
+ }
43955
+ return result;
43956
+ }
43957
+
43958
+ /**
43959
+ * Creates a unary function that invokes `func` with its argument transformed.
43960
+ *
43961
+ * @private
43962
+ * @param {Function} func The function to wrap.
43963
+ * @param {Function} transform The argument transform.
43964
+ * @returns {Function} Returns the new function.
43965
+ */
43966
+ function overArg(func, transform) {
43967
+ return function(arg) {
43968
+ return func(transform(arg));
43969
+ };
43970
+ }
43971
+
43972
+ /**
43973
+ * This function is like
43974
+ * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
43975
+ * except that it includes inherited enumerable properties.
43976
+ *
43977
+ * @private
43978
+ * @param {Object} object The object to query.
43979
+ * @returns {Array} Returns the array of property names.
43980
+ */
43981
+ function nativeKeysIn(object) {
43982
+ var result = [];
43983
+ if (object != null) {
43984
+ for (var key in Object(object)) {
43985
+ result.push(key);
43986
+ }
43987
+ }
43988
+ return result;
43989
+ }
43990
+
43991
+ /** Used for built-in method references. */
43992
+ var objectProto$3 = Object.prototype;
43993
+
43994
+ /** Used to check objects for own properties. */
43995
+ var hasOwnProperty$3 = objectProto$3.hasOwnProperty;
43996
+
43997
+ /**
43998
+ * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
43999
+ *
44000
+ * @private
44001
+ * @param {Object} object The object to query.
44002
+ * @returns {Array} Returns the array of property names.
44003
+ */
44004
+ function baseKeysIn(object) {
44005
+ if (!isObject(object)) {
44006
+ return nativeKeysIn(object);
44007
+ }
44008
+ var isProto = isPrototype(object),
44009
+ result = [];
44010
+
44011
+ for (var key in object) {
44012
+ if (!(key == 'constructor' && (isProto || !hasOwnProperty$3.call(object, key)))) {
44013
+ result.push(key);
44014
+ }
44015
+ }
44016
+ return result;
44017
+ }
44018
+
44019
+ /**
44020
+ * Creates an array of the own and inherited enumerable property names of `object`.
44021
+ *
44022
+ * **Note:** Non-object values are coerced to objects.
44023
+ *
44024
+ * @static
44025
+ * @memberOf _
44026
+ * @since 3.0.0
44027
+ * @category Object
44028
+ * @param {Object} object The object to query.
44029
+ * @returns {Array} Returns the array of property names.
44030
+ * @example
44031
+ *
44032
+ * function Foo() {
44033
+ * this.a = 1;
44034
+ * this.b = 2;
44035
+ * }
44036
+ *
44037
+ * Foo.prototype.c = 3;
44038
+ *
44039
+ * _.keysIn(new Foo);
44040
+ * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
44041
+ */
44042
+ function keysIn(object) {
44043
+ return isArrayLike(object) ? arrayLikeKeys(object) : baseKeysIn(object);
44044
+ }
44045
+
44046
+ /* Built-in method references that are verified to be native. */
44047
+ var nativeCreate = getNative(Object, 'create');
44048
+
44049
+ /**
44050
+ * Removes all key-value entries from the hash.
44051
+ *
44052
+ * @private
44053
+ * @name clear
44054
+ * @memberOf Hash
44055
+ */
44056
+ function hashClear() {
44057
+ this.__data__ = nativeCreate ? nativeCreate(null) : {};
44058
+ this.size = 0;
44059
+ }
44060
+
44061
+ /**
44062
+ * Removes `key` and its value from the hash.
44063
+ *
44064
+ * @private
44065
+ * @name delete
44066
+ * @memberOf Hash
44067
+ * @param {Object} hash The hash to modify.
44068
+ * @param {string} key The key of the value to remove.
44069
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
44070
+ */
44071
+ function hashDelete(key) {
44072
+ var result = this.has(key) && delete this.__data__[key];
44073
+ this.size -= result ? 1 : 0;
44074
+ return result;
44075
+ }
44076
+
44077
+ /** Used to stand-in for `undefined` hash values. */
44078
+ var HASH_UNDEFINED$1 = '__lodash_hash_undefined__';
44079
+
44080
+ /** Used for built-in method references. */
44081
+ var objectProto$2 = Object.prototype;
44082
+
44083
+ /** Used to check objects for own properties. */
44084
+ var hasOwnProperty$2 = objectProto$2.hasOwnProperty;
44085
+
44086
+ /**
44087
+ * Gets the hash value for `key`.
44088
+ *
44089
+ * @private
44090
+ * @name get
44091
+ * @memberOf Hash
44092
+ * @param {string} key The key of the value to get.
44093
+ * @returns {*} Returns the entry value.
44094
+ */
44095
+ function hashGet(key) {
44096
+ var data = this.__data__;
44097
+ if (nativeCreate) {
44098
+ var result = data[key];
44099
+ return result === HASH_UNDEFINED$1 ? undefined : result;
44100
+ }
44101
+ return hasOwnProperty$2.call(data, key) ? data[key] : undefined;
44102
+ }
44103
+
44104
+ /** Used for built-in method references. */
44105
+ var objectProto$1 = Object.prototype;
44106
+
44107
+ /** Used to check objects for own properties. */
44108
+ var hasOwnProperty$1 = objectProto$1.hasOwnProperty;
44109
+
44110
+ /**
44111
+ * Checks if a hash value for `key` exists.
44112
+ *
44113
+ * @private
44114
+ * @name has
44115
+ * @memberOf Hash
44116
+ * @param {string} key The key of the entry to check.
44117
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
44118
+ */
44119
+ function hashHas(key) {
44120
+ var data = this.__data__;
44121
+ return nativeCreate ? (data[key] !== undefined) : hasOwnProperty$1.call(data, key);
44122
+ }
44123
+
44124
+ /** Used to stand-in for `undefined` hash values. */
44125
+ var HASH_UNDEFINED = '__lodash_hash_undefined__';
44126
+
44127
+ /**
44128
+ * Sets the hash `key` to `value`.
44129
+ *
44130
+ * @private
44131
+ * @name set
44132
+ * @memberOf Hash
44133
+ * @param {string} key The key of the value to set.
44134
+ * @param {*} value The value to set.
44135
+ * @returns {Object} Returns the hash instance.
44136
+ */
44137
+ function hashSet(key, value) {
44138
+ var data = this.__data__;
44139
+ this.size += this.has(key) ? 0 : 1;
44140
+ data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
44141
+ return this;
44142
+ }
44143
+
44144
+ /**
44145
+ * Creates a hash object.
44146
+ *
44147
+ * @private
44148
+ * @constructor
44149
+ * @param {Array} [entries] The key-value pairs to cache.
44150
+ */
44151
+ function Hash(entries) {
44152
+ var index = -1,
44153
+ length = entries == null ? 0 : entries.length;
44154
+
44155
+ this.clear();
44156
+ while (++index < length) {
44157
+ var entry = entries[index];
44158
+ this.set(entry[0], entry[1]);
44159
+ }
44160
+ }
44161
+
44162
+ // Add methods to `Hash`.
44163
+ Hash.prototype.clear = hashClear;
44164
+ Hash.prototype['delete'] = hashDelete;
44165
+ Hash.prototype.get = hashGet;
44166
+ Hash.prototype.has = hashHas;
44167
+ Hash.prototype.set = hashSet;
44168
+
44169
+ /**
44170
+ * Removes all key-value entries from the list cache.
44171
+ *
44172
+ * @private
44173
+ * @name clear
44174
+ * @memberOf ListCache
44175
+ */
44176
+ function listCacheClear() {
44177
+ this.__data__ = [];
44178
+ this.size = 0;
44179
+ }
44180
+
44181
+ /**
44182
+ * Gets the index at which the `key` is found in `array` of key-value pairs.
44183
+ *
44184
+ * @private
44185
+ * @param {Array} array The array to inspect.
44186
+ * @param {*} key The key to search for.
44187
+ * @returns {number} Returns the index of the matched value, else `-1`.
44188
+ */
44189
+ function assocIndexOf(array, key) {
44190
+ var length = array.length;
44191
+ while (length--) {
44192
+ if (eq(array[length][0], key)) {
44193
+ return length;
44194
+ }
44195
+ }
44196
+ return -1;
44197
+ }
44198
+
44199
+ /** Used for built-in method references. */
44200
+ var arrayProto = Array.prototype;
44201
+
44202
+ /** Built-in value references. */
44203
+ var splice = arrayProto.splice;
44204
+
44205
+ /**
44206
+ * Removes `key` and its value from the list cache.
44207
+ *
44208
+ * @private
44209
+ * @name delete
44210
+ * @memberOf ListCache
44211
+ * @param {string} key The key of the value to remove.
44212
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
44213
+ */
44214
+ function listCacheDelete(key) {
44215
+ var data = this.__data__,
44216
+ index = assocIndexOf(data, key);
44217
+
44218
+ if (index < 0) {
44219
+ return false;
44220
+ }
44221
+ var lastIndex = data.length - 1;
44222
+ if (index == lastIndex) {
44223
+ data.pop();
44224
+ } else {
44225
+ splice.call(data, index, 1);
44226
+ }
44227
+ --this.size;
44228
+ return true;
44229
+ }
44230
+
44231
+ /**
44232
+ * Gets the list cache value for `key`.
44233
+ *
44234
+ * @private
44235
+ * @name get
44236
+ * @memberOf ListCache
44237
+ * @param {string} key The key of the value to get.
44238
+ * @returns {*} Returns the entry value.
44239
+ */
44240
+ function listCacheGet(key) {
44241
+ var data = this.__data__,
44242
+ index = assocIndexOf(data, key);
44243
+
44244
+ return index < 0 ? undefined : data[index][1];
44245
+ }
44246
+
44247
+ /**
44248
+ * Checks if a list cache value for `key` exists.
44249
+ *
44250
+ * @private
44251
+ * @name has
44252
+ * @memberOf ListCache
44253
+ * @param {string} key The key of the entry to check.
44254
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
44255
+ */
44256
+ function listCacheHas(key) {
44257
+ return assocIndexOf(this.__data__, key) > -1;
44258
+ }
44259
+
44260
+ /**
44261
+ * Sets the list cache `key` to `value`.
44262
+ *
44263
+ * @private
44264
+ * @name set
44265
+ * @memberOf ListCache
44266
+ * @param {string} key The key of the value to set.
44267
+ * @param {*} value The value to set.
44268
+ * @returns {Object} Returns the list cache instance.
44269
+ */
44270
+ function listCacheSet(key, value) {
44271
+ var data = this.__data__,
44272
+ index = assocIndexOf(data, key);
44273
+
44274
+ if (index < 0) {
44275
+ ++this.size;
44276
+ data.push([key, value]);
44277
+ } else {
44278
+ data[index][1] = value;
44279
+ }
44280
+ return this;
44281
+ }
44282
+
44283
+ /**
44284
+ * Creates an list cache object.
44285
+ *
44286
+ * @private
44287
+ * @constructor
44288
+ * @param {Array} [entries] The key-value pairs to cache.
44289
+ */
44290
+ function ListCache(entries) {
44291
+ var index = -1,
44292
+ length = entries == null ? 0 : entries.length;
44293
+
44294
+ this.clear();
44295
+ while (++index < length) {
44296
+ var entry = entries[index];
44297
+ this.set(entry[0], entry[1]);
44298
+ }
44299
+ }
44300
+
44301
+ // Add methods to `ListCache`.
44302
+ ListCache.prototype.clear = listCacheClear;
44303
+ ListCache.prototype['delete'] = listCacheDelete;
44304
+ ListCache.prototype.get = listCacheGet;
44305
+ ListCache.prototype.has = listCacheHas;
44306
+ ListCache.prototype.set = listCacheSet;
44307
+
44308
+ /* Built-in method references that are verified to be native. */
44309
+ var Map$1 = getNative(root, 'Map');
44310
+
44311
+ /**
44312
+ * Removes all key-value entries from the map.
44313
+ *
44314
+ * @private
44315
+ * @name clear
44316
+ * @memberOf MapCache
44317
+ */
44318
+ function mapCacheClear() {
44319
+ this.size = 0;
44320
+ this.__data__ = {
44321
+ 'hash': new Hash,
44322
+ 'map': new (Map$1 || ListCache),
44323
+ 'string': new Hash
44324
+ };
44325
+ }
44326
+
44327
+ /**
44328
+ * Checks if `value` is suitable for use as unique object key.
44329
+ *
44330
+ * @private
44331
+ * @param {*} value The value to check.
44332
+ * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
44333
+ */
44334
+ function isKeyable(value) {
44335
+ var type = typeof value;
44336
+ return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
44337
+ ? (value !== '__proto__')
44338
+ : (value === null);
44339
+ }
44340
+
44341
+ /**
44342
+ * Gets the data for `map`.
44343
+ *
44344
+ * @private
44345
+ * @param {Object} map The map to query.
44346
+ * @param {string} key The reference key.
44347
+ * @returns {*} Returns the map data.
44348
+ */
44349
+ function getMapData(map, key) {
44350
+ var data = map.__data__;
44351
+ return isKeyable(key)
44352
+ ? data[typeof key == 'string' ? 'string' : 'hash']
44353
+ : data.map;
44354
+ }
44355
+
44356
+ /**
44357
+ * Removes `key` and its value from the map.
44358
+ *
44359
+ * @private
44360
+ * @name delete
44361
+ * @memberOf MapCache
44362
+ * @param {string} key The key of the value to remove.
44363
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
44364
+ */
44365
+ function mapCacheDelete(key) {
44366
+ var result = getMapData(this, key)['delete'](key);
44367
+ this.size -= result ? 1 : 0;
44368
+ return result;
44369
+ }
44370
+
44371
+ /**
44372
+ * Gets the map value for `key`.
44373
+ *
44374
+ * @private
44375
+ * @name get
44376
+ * @memberOf MapCache
44377
+ * @param {string} key The key of the value to get.
44378
+ * @returns {*} Returns the entry value.
44379
+ */
44380
+ function mapCacheGet(key) {
44381
+ return getMapData(this, key).get(key);
44382
+ }
44383
+
44384
+ /**
44385
+ * Checks if a map value for `key` exists.
44386
+ *
44387
+ * @private
44388
+ * @name has
44389
+ * @memberOf MapCache
44390
+ * @param {string} key The key of the entry to check.
44391
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
44392
+ */
44393
+ function mapCacheHas(key) {
44394
+ return getMapData(this, key).has(key);
44395
+ }
44396
+
44397
+ /**
44398
+ * Sets the map `key` to `value`.
44399
+ *
44400
+ * @private
44401
+ * @name set
44402
+ * @memberOf MapCache
44403
+ * @param {string} key The key of the value to set.
44404
+ * @param {*} value The value to set.
44405
+ * @returns {Object} Returns the map cache instance.
44406
+ */
44407
+ function mapCacheSet(key, value) {
44408
+ var data = getMapData(this, key),
44409
+ size = data.size;
44410
+
44411
+ data.set(key, value);
44412
+ this.size += data.size == size ? 0 : 1;
44413
+ return this;
44414
+ }
44415
+
44416
+ /**
44417
+ * Creates a map cache object to store key-value pairs.
44418
+ *
44419
+ * @private
44420
+ * @constructor
44421
+ * @param {Array} [entries] The key-value pairs to cache.
44422
+ */
44423
+ function MapCache(entries) {
44424
+ var index = -1,
44425
+ length = entries == null ? 0 : entries.length;
44426
+
44427
+ this.clear();
44428
+ while (++index < length) {
44429
+ var entry = entries[index];
44430
+ this.set(entry[0], entry[1]);
44431
+ }
44432
+ }
44433
+
44434
+ // Add methods to `MapCache`.
44435
+ MapCache.prototype.clear = mapCacheClear;
44436
+ MapCache.prototype['delete'] = mapCacheDelete;
44437
+ MapCache.prototype.get = mapCacheGet;
44438
+ MapCache.prototype.has = mapCacheHas;
44439
+ MapCache.prototype.set = mapCacheSet;
44440
+
44441
+ /** Built-in value references. */
44442
+ var getPrototype = overArg(Object.getPrototypeOf, Object);
44443
+
44444
+ /** `Object#toString` result references. */
44445
+ var objectTag = '[object Object]';
44446
+
44447
+ /** Used for built-in method references. */
44448
+ var funcProto = Function.prototype,
44449
+ objectProto = Object.prototype;
44450
+
44451
+ /** Used to resolve the decompiled source of functions. */
44452
+ var funcToString = funcProto.toString;
44453
+
44454
+ /** Used to check objects for own properties. */
44455
+ var hasOwnProperty = objectProto.hasOwnProperty;
44456
+
44457
+ /** Used to infer the `Object` constructor. */
44458
+ var objectCtorString = funcToString.call(Object);
44459
+
44460
+ /**
44461
+ * Checks if `value` is a plain object, that is, an object created by the
44462
+ * `Object` constructor or one with a `[[Prototype]]` of `null`.
44463
+ *
44464
+ * @static
44465
+ * @memberOf _
44466
+ * @since 0.8.0
44467
+ * @category Lang
44468
+ * @param {*} value The value to check.
44469
+ * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
44470
+ * @example
44471
+ *
44472
+ * function Foo() {
44473
+ * this.a = 1;
44474
+ * }
44475
+ *
44476
+ * _.isPlainObject(new Foo);
44477
+ * // => false
44478
+ *
44479
+ * _.isPlainObject([1, 2, 3]);
44480
+ * // => false
44481
+ *
44482
+ * _.isPlainObject({ 'x': 0, 'y': 0 });
44483
+ * // => true
44484
+ *
44485
+ * _.isPlainObject(Object.create(null));
44486
+ * // => true
44487
+ */
44488
+ function isPlainObject(value) {
44489
+ if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
44490
+ return false;
44491
+ }
44492
+ var proto = getPrototype(value);
44493
+ if (proto === null) {
44494
+ return true;
44495
+ }
44496
+ var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
44497
+ return typeof Ctor == 'function' && Ctor instanceof Ctor &&
44498
+ funcToString.call(Ctor) == objectCtorString;
44499
+ }
44500
+
44501
+ /**
44502
+ * Removes all key-value entries from the stack.
44503
+ *
44504
+ * @private
44505
+ * @name clear
44506
+ * @memberOf Stack
44507
+ */
44508
+ function stackClear() {
44509
+ this.__data__ = new ListCache;
44510
+ this.size = 0;
44511
+ }
44512
+
44513
+ /**
44514
+ * Removes `key` and its value from the stack.
44515
+ *
44516
+ * @private
44517
+ * @name delete
44518
+ * @memberOf Stack
44519
+ * @param {string} key The key of the value to remove.
44520
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
44521
+ */
44522
+ function stackDelete(key) {
44523
+ var data = this.__data__,
44524
+ result = data['delete'](key);
44525
+
44526
+ this.size = data.size;
44527
+ return result;
44528
+ }
44529
+
44530
+ /**
44531
+ * Gets the stack value for `key`.
44532
+ *
44533
+ * @private
44534
+ * @name get
44535
+ * @memberOf Stack
44536
+ * @param {string} key The key of the value to get.
44537
+ * @returns {*} Returns the entry value.
44538
+ */
44539
+ function stackGet(key) {
44540
+ return this.__data__.get(key);
44541
+ }
44542
+
44543
+ /**
44544
+ * Checks if a stack value for `key` exists.
44545
+ *
44546
+ * @private
44547
+ * @name has
44548
+ * @memberOf Stack
44549
+ * @param {string} key The key of the entry to check.
44550
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
44551
+ */
44552
+ function stackHas(key) {
44553
+ return this.__data__.has(key);
44554
+ }
44555
+
44556
+ /** Used as the size to enable large array optimizations. */
44557
+ var LARGE_ARRAY_SIZE = 200;
44558
+
44559
+ /**
44560
+ * Sets the stack `key` to `value`.
44561
+ *
44562
+ * @private
44563
+ * @name set
44564
+ * @memberOf Stack
44565
+ * @param {string} key The key of the value to set.
44566
+ * @param {*} value The value to set.
44567
+ * @returns {Object} Returns the stack cache instance.
44568
+ */
44569
+ function stackSet(key, value) {
44570
+ var data = this.__data__;
44571
+ if (data instanceof ListCache) {
44572
+ var pairs = data.__data__;
44573
+ if (!Map$1 || (pairs.length < LARGE_ARRAY_SIZE - 1)) {
44574
+ pairs.push([key, value]);
44575
+ this.size = ++data.size;
44576
+ return this;
44577
+ }
44578
+ data = this.__data__ = new MapCache(pairs);
44579
+ }
44580
+ data.set(key, value);
44581
+ this.size = data.size;
44582
+ return this;
44583
+ }
44584
+
44585
+ /**
44586
+ * Creates a stack cache object to store key-value pairs.
44587
+ *
44588
+ * @private
44589
+ * @constructor
44590
+ * @param {Array} [entries] The key-value pairs to cache.
44591
+ */
44592
+ function Stack(entries) {
44593
+ var data = this.__data__ = new ListCache(entries);
44594
+ this.size = data.size;
44595
+ }
44596
+
44597
+ // Add methods to `Stack`.
44598
+ Stack.prototype.clear = stackClear;
44599
+ Stack.prototype['delete'] = stackDelete;
44600
+ Stack.prototype.get = stackGet;
44601
+ Stack.prototype.has = stackHas;
44602
+ Stack.prototype.set = stackSet;
44603
+
44604
+ /** Detect free variable `exports`. */
44605
+ var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
44606
+
44607
+ /** Detect free variable `module`. */
44608
+ var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
44609
+
44610
+ /** Detect the popular CommonJS extension `module.exports`. */
44611
+ var moduleExports = freeModule && freeModule.exports === freeExports;
44612
+
44613
+ /** Built-in value references. */
44614
+ var Buffer$1 = moduleExports ? root.Buffer : undefined;
44615
+ Buffer$1 ? Buffer$1.allocUnsafe : undefined;
44616
+
44617
+ /**
44618
+ * Creates a clone of `buffer`.
44619
+ *
44620
+ * @private
44621
+ * @param {Buffer} buffer The buffer to clone.
44622
+ * @param {boolean} [isDeep] Specify a deep clone.
44623
+ * @returns {Buffer} Returns the cloned buffer.
44624
+ */
44625
+ function cloneBuffer(buffer, isDeep) {
44626
+ {
44627
+ return buffer.slice();
44628
+ }
44629
+ }
44630
+
44631
+ /** Built-in value references. */
44632
+ var Uint8Array$1 = root.Uint8Array;
44633
+
44634
+ /**
44635
+ * Creates a clone of `arrayBuffer`.
44636
+ *
44637
+ * @private
44638
+ * @param {ArrayBuffer} arrayBuffer The array buffer to clone.
44639
+ * @returns {ArrayBuffer} Returns the cloned array buffer.
44640
+ */
44641
+ function cloneArrayBuffer(arrayBuffer) {
44642
+ var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
44643
+ new Uint8Array$1(result).set(new Uint8Array$1(arrayBuffer));
44644
+ return result;
44645
+ }
44646
+
44647
+ /**
44648
+ * Creates a clone of `typedArray`.
44649
+ *
44650
+ * @private
44651
+ * @param {Object} typedArray The typed array to clone.
44652
+ * @param {boolean} [isDeep] Specify a deep clone.
44653
+ * @returns {Object} Returns the cloned typed array.
44654
+ */
44655
+ function cloneTypedArray(typedArray, isDeep) {
44656
+ var buffer = cloneArrayBuffer(typedArray.buffer) ;
44657
+ return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
44658
+ }
44659
+
44660
+ /**
44661
+ * Initializes an object clone.
44662
+ *
44663
+ * @private
44664
+ * @param {Object} object The object to clone.
44665
+ * @returns {Object} Returns the initialized clone.
44666
+ */
44667
+ function initCloneObject(object) {
44668
+ return (typeof object.constructor == 'function' && !isPrototype(object))
44669
+ ? baseCreate(getPrototype(object))
44670
+ : {};
44671
+ }
44672
+
44673
+ /**
44674
+ * Creates a base function for methods like `_.forIn` and `_.forOwn`.
44675
+ *
44676
+ * @private
44677
+ * @param {boolean} [fromRight] Specify iterating from right to left.
44678
+ * @returns {Function} Returns the new base function.
44679
+ */
44680
+ function createBaseFor(fromRight) {
44681
+ return function(object, iteratee, keysFunc) {
44682
+ var index = -1,
44683
+ iterable = Object(object),
44684
+ props = keysFunc(object),
44685
+ length = props.length;
44686
+
44687
+ while (length--) {
44688
+ var key = props[++index];
44689
+ if (iteratee(iterable[key], key, iterable) === false) {
44690
+ break;
44691
+ }
44692
+ }
44693
+ return object;
44694
+ };
44695
+ }
44696
+
44697
+ /**
44698
+ * The base implementation of `baseForOwn` which iterates over `object`
44699
+ * properties returned by `keysFunc` and invokes `iteratee` for each property.
44700
+ * Iteratee functions may exit iteration early by explicitly returning `false`.
44701
+ *
44702
+ * @private
44703
+ * @param {Object} object The object to iterate over.
44704
+ * @param {Function} iteratee The function invoked per iteration.
44705
+ * @param {Function} keysFunc The function to get the keys of `object`.
44706
+ * @returns {Object} Returns `object`.
44707
+ */
44708
+ var baseFor = createBaseFor();
44709
+
44710
+ /**
44711
+ * This function is like `assignValue` except that it doesn't assign
44712
+ * `undefined` values.
44713
+ *
44714
+ * @private
44715
+ * @param {Object} object The object to modify.
44716
+ * @param {string} key The key of the property to assign.
44717
+ * @param {*} value The value to assign.
44718
+ */
44719
+ function assignMergeValue(object, key, value) {
44720
+ if ((value !== undefined && !eq(object[key], value)) ||
44721
+ (value === undefined && !(key in object))) {
44722
+ baseAssignValue(object, key, value);
44723
+ }
44724
+ }
44725
+
44726
+ /**
44727
+ * This method is like `_.isArrayLike` except that it also checks if `value`
44728
+ * is an object.
44729
+ *
44730
+ * @static
44731
+ * @memberOf _
44732
+ * @since 4.0.0
44733
+ * @category Lang
44734
+ * @param {*} value The value to check.
44735
+ * @returns {boolean} Returns `true` if `value` is an array-like object,
44736
+ * else `false`.
44737
+ * @example
44738
+ *
44739
+ * _.isArrayLikeObject([1, 2, 3]);
44740
+ * // => true
44741
+ *
44742
+ * _.isArrayLikeObject(document.body.children);
44743
+ * // => true
44744
+ *
44745
+ * _.isArrayLikeObject('abc');
44746
+ * // => false
44747
+ *
44748
+ * _.isArrayLikeObject(_.noop);
44749
+ * // => false
44750
+ */
44751
+ function isArrayLikeObject(value) {
44752
+ return isObjectLike(value) && isArrayLike(value);
44753
+ }
44754
+
44755
+ /**
44756
+ * Gets the value at `key`, unless `key` is "__proto__" or "constructor".
44757
+ *
44758
+ * @private
44759
+ * @param {Object} object The object to query.
44760
+ * @param {string} key The key of the property to get.
44761
+ * @returns {*} Returns the property value.
44762
+ */
44763
+ function safeGet(object, key) {
44764
+ if (key === 'constructor' && typeof object[key] === 'function') {
44765
+ return;
44766
+ }
44767
+
44768
+ if (key == '__proto__') {
44769
+ return;
44770
+ }
44771
+
44772
+ return object[key];
44773
+ }
44774
+
44775
+ /**
44776
+ * Converts `value` to a plain object flattening inherited enumerable string
44777
+ * keyed properties of `value` to own properties of the plain object.
44778
+ *
44779
+ * @static
44780
+ * @memberOf _
44781
+ * @since 3.0.0
44782
+ * @category Lang
44783
+ * @param {*} value The value to convert.
44784
+ * @returns {Object} Returns the converted plain object.
44785
+ * @example
44786
+ *
44787
+ * function Foo() {
44788
+ * this.b = 2;
44789
+ * }
44790
+ *
44791
+ * Foo.prototype.c = 3;
44792
+ *
44793
+ * _.assign({ 'a': 1 }, new Foo);
44794
+ * // => { 'a': 1, 'b': 2 }
44795
+ *
44796
+ * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));
44797
+ * // => { 'a': 1, 'b': 2, 'c': 3 }
44798
+ */
44799
+ function toPlainObject(value) {
44800
+ return copyObject(value, keysIn(value));
44801
+ }
44802
+
44803
+ /**
44804
+ * A specialized version of `baseMerge` for arrays and objects which performs
44805
+ * deep merges and tracks traversed objects enabling objects with circular
44806
+ * references to be merged.
44807
+ *
44808
+ * @private
44809
+ * @param {Object} object The destination object.
44810
+ * @param {Object} source The source object.
44811
+ * @param {string} key The key of the value to merge.
44812
+ * @param {number} srcIndex The index of `source`.
44813
+ * @param {Function} mergeFunc The function to merge values.
44814
+ * @param {Function} [customizer] The function to customize assigned values.
44815
+ * @param {Object} [stack] Tracks traversed source values and their merged
44816
+ * counterparts.
44817
+ */
44818
+ function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {
44819
+ var objValue = safeGet(object, key),
44820
+ srcValue = safeGet(source, key),
44821
+ stacked = stack.get(srcValue);
44822
+
44823
+ if (stacked) {
44824
+ assignMergeValue(object, key, stacked);
44825
+ return;
44826
+ }
44827
+ var newValue = customizer
44828
+ ? customizer(objValue, srcValue, (key + ''), object, source, stack)
44829
+ : undefined;
44830
+
44831
+ var isCommon = newValue === undefined;
44832
+
44833
+ if (isCommon) {
44834
+ var isArr = isArray(srcValue),
44835
+ isBuff = !isArr && isBuffer(srcValue),
44836
+ isTyped = !isArr && !isBuff && isTypedArray(srcValue);
44837
+
44838
+ newValue = srcValue;
44839
+ if (isArr || isBuff || isTyped) {
44840
+ if (isArray(objValue)) {
44841
+ newValue = objValue;
44842
+ }
44843
+ else if (isArrayLikeObject(objValue)) {
44844
+ newValue = copyArray(objValue);
44845
+ }
44846
+ else if (isBuff) {
44847
+ isCommon = false;
44848
+ newValue = cloneBuffer(srcValue);
44849
+ }
44850
+ else if (isTyped) {
44851
+ isCommon = false;
44852
+ newValue = cloneTypedArray(srcValue);
44853
+ }
44854
+ else {
44855
+ newValue = [];
44856
+ }
44857
+ }
44858
+ else if (isPlainObject(srcValue) || isArguments(srcValue)) {
44859
+ newValue = objValue;
44860
+ if (isArguments(objValue)) {
44861
+ newValue = toPlainObject(objValue);
44862
+ }
44863
+ else if (!isObject(objValue) || isFunction(objValue)) {
44864
+ newValue = initCloneObject(srcValue);
44865
+ }
44866
+ }
44867
+ else {
44868
+ isCommon = false;
44869
+ }
44870
+ }
44871
+ if (isCommon) {
44872
+ // Recursively merge objects and arrays (susceptible to call stack limits).
44873
+ stack.set(srcValue, newValue);
44874
+ mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
44875
+ stack['delete'](srcValue);
44876
+ }
44877
+ assignMergeValue(object, key, newValue);
44878
+ }
44879
+
44880
+ /**
44881
+ * The base implementation of `_.merge` without support for multiple sources.
44882
+ *
44883
+ * @private
44884
+ * @param {Object} object The destination object.
44885
+ * @param {Object} source The source object.
44886
+ * @param {number} srcIndex The index of `source`.
44887
+ * @param {Function} [customizer] The function to customize merged values.
44888
+ * @param {Object} [stack] Tracks traversed source values and their merged
44889
+ * counterparts.
44890
+ */
44891
+ function baseMerge(object, source, srcIndex, customizer, stack) {
44892
+ if (object === source) {
44893
+ return;
44894
+ }
44895
+ baseFor(source, function(srcValue, key) {
44896
+ stack || (stack = new Stack);
44897
+ if (isObject(srcValue)) {
44898
+ baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
44899
+ }
44900
+ else {
44901
+ var newValue = customizer
44902
+ ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)
44903
+ : undefined;
44904
+
44905
+ if (newValue === undefined) {
44906
+ newValue = srcValue;
44907
+ }
44908
+ assignMergeValue(object, key, newValue);
44909
+ }
44910
+ }, keysIn);
44911
+ }
44912
+
44913
+ /**
44914
+ * This method is like `_.assign` except that it recursively merges own and
44915
+ * inherited enumerable string keyed properties of source objects into the
44916
+ * destination object. Source properties that resolve to `undefined` are
44917
+ * skipped if a destination value exists. Array and plain object properties
44918
+ * are merged recursively. Other objects and value types are overridden by
44919
+ * assignment. Source objects are applied from left to right. Subsequent
44920
+ * sources overwrite property assignments of previous sources.
44921
+ *
44922
+ * **Note:** This method mutates `object`.
44923
+ *
44924
+ * @static
44925
+ * @memberOf _
44926
+ * @since 0.5.0
44927
+ * @category Object
44928
+ * @param {Object} object The destination object.
44929
+ * @param {...Object} [sources] The source objects.
44930
+ * @returns {Object} Returns `object`.
44931
+ * @example
44932
+ *
44933
+ * var object = {
44934
+ * 'a': [{ 'b': 2 }, { 'd': 4 }]
44935
+ * };
44936
+ *
44937
+ * var other = {
44938
+ * 'a': [{ 'c': 3 }, { 'e': 5 }]
44939
+ * };
44940
+ *
44941
+ * _.merge(object, other);
44942
+ * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }
44943
+ */
44944
+ var merge = createAssigner(function(object, source, srcIndex) {
44945
+ baseMerge(object, source, srcIndex);
44946
+ });
44947
+
44948
+ const vxeSize = useThemeConfig(pinia).themeConfig.globalComponentSize == "small" ? "mini" : useThemeConfig(pinia).themeConfig.globalComponentSize == "default" ? "small" : "medium";
44949
+ const useVxeTable = (opt, extras) => {
44950
+ opt.id = opt.id ? opt.id : String((/* @__PURE__ */ new Date()).getTime());
44951
+ const options = vue.reactive({
44952
+ id: opt.id,
44953
+ height: "auto",
44954
+ autoResize: true,
44955
+ size: vxeSize,
44956
+ loading: false,
44957
+ align: "center",
44958
+ // 自动监听父元素的变化去重新计算表格(对于父元素可能存在动态变化、显示隐藏的容器中、列宽异常等场景中的可能会用到)
44959
+ // data: [] as Array<T>,
44960
+ columns: opt.columns,
44961
+ showFooter: opt.showFooter,
44962
+ footerData: opt.footerData,
44963
+ footerMethod: opt.footerMethod,
44964
+ toolbarConfig: {
44965
+ size: vxeSize,
44966
+ slots: { buttons: "toolbar_buttons", tools: "toolbar_tools" },
44967
+ refresh: {
44968
+ code: "query"
44969
+ },
44970
+ export: true,
44971
+ print: true,
44972
+ zoom: true,
44973
+ custom: true
44974
+ },
44975
+ checkboxConfig: { range: true },
44976
+ // sortConfig: { trigger: 'cell', remote: true },
44977
+ exportConfig: {
44978
+ remote: false,
44979
+ // 设置使用服务端导出
44980
+ filename: `${opt.name}\u5BFC\u51FA_${elementPlus.dayjs().format("YYMMDDHHmmss")}`
44981
+ },
44982
+ pagerConfig: {
44983
+ enabled: true,
44984
+ size: vxeSize,
44985
+ pageSize: 50
44986
+ },
44987
+ printConfig: { sheetName: "" },
44988
+ customConfig: {
44989
+ storage: {
44990
+ // 是否启用 localStorage 本地保存,会将列操作状态保留在本地(需要有 id)
44991
+ visible: true,
44992
+ // 启用显示/隐藏列状态
44993
+ resizable: true
44994
+ // 启用列宽状态
44995
+ }
44996
+ }
44997
+ });
44998
+ if (opt.data) {
44999
+ options.data = opt.data;
45000
+ } else {
45001
+ options.proxyConfig = {
45002
+ enabled: true,
45003
+ autoLoad: false,
45004
+ sort: true,
45005
+ props: {
45006
+ list: "data.result",
45007
+ // 全量
45008
+ result: "data.result.items",
45009
+ // 分页
45010
+ total: "data.result.total",
45011
+ message: "data.message"
45012
+ }
45013
+ };
45014
+ }
45015
+ if (opt.sortConfig) {
45016
+ options.sortConfig = opt.sortConfig;
45017
+ } else {
45018
+ options.sortConfig = { remote: true };
45019
+ }
45020
+ return extras ? merge(options, extras) : options;
45021
+ };
45022
+
42824
45023
  const version = "1.0.0";
42825
45024
 
42826
45025
  const install = installer.install;
42827
45026
 
42828
45027
  exports.FmLogin = FmLogin;
42829
45028
  exports.Local = Local;
45029
+ exports.NextLoading = NextLoading;
42830
45030
  exports.PUB = PUB;
42831
45031
  exports.Session = Session;
42832
45032
  exports.Watermark = Watermark;
@@ -42894,6 +45094,7 @@
42894
45094
  exports.useTagsViewRoutes = useTagsViewRoutes;
42895
45095
  exports.useThemeConfig = useThemeConfig;
42896
45096
  exports.useUserInfo = useUserInfo;
45097
+ exports.useVxeTable = useVxeTable;
42897
45098
  exports.verifiyNumberInteger = verifiyNumberInteger;
42898
45099
  exports.verifyAccount = verifyAccount;
42899
45100
  exports.verifyAndSpace = verifyAndSpace;