@tmagic/form 1.8.0-beta.1 → 1.8.0-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/es/Form.vue_vue_type_script_setup_true_lang.js +25 -6
  2. package/dist/es/FormBox.vue_vue_type_script_setup_true_lang.js +7 -1
  3. package/dist/es/FormDialog.vue_vue_type_script_setup_true_lang.js +7 -1
  4. package/dist/es/FormDrawer.vue_vue_type_script_setup_true_lang.js +7 -1
  5. package/dist/es/containers/Col.vue_vue_type_script_setup_true_lang.js +1 -1
  6. package/dist/es/containers/Container.vue_vue_type_script_setup_true_lang.js +195 -78
  7. package/dist/es/containers/Fieldset.vue_vue_type_script_setup_true_lang.js +5 -3
  8. package/dist/es/containers/FlexLayout.vue_vue_type_script_setup_true_lang.js +1 -1
  9. package/dist/es/containers/FormLabel.vue_vue_type_script_setup_true_lang.js +1 -1
  10. package/dist/es/containers/GroupList.vue_vue_type_script_setup_true_lang.js +6 -3
  11. package/dist/es/containers/GroupListItem.vue_vue_type_script_setup_true_lang.js +10 -9
  12. package/dist/es/containers/Panel.vue_vue_type_script_setup_true_lang.js +1 -1
  13. package/dist/es/containers/Row.vue_vue_type_script_setup_true_lang.js +1 -1
  14. package/dist/es/containers/Step.vue_vue_type_script_setup_true_lang.js +1 -1
  15. package/dist/es/containers/Tabs.vue_vue_type_script_setup_true_lang.js +6 -3
  16. package/dist/es/containers/table/ActionsColumn.vue_vue_type_script_setup_true_lang.js +1 -1
  17. package/dist/es/containers/table/SortColumn.vue_vue_type_script_setup_true_lang.js +1 -1
  18. package/dist/es/containers/table/Table.vue_vue_type_script_setup_true_lang.js +4 -4
  19. package/dist/es/containers/table-group-list/TableGroupList.vue_vue_type_script_setup_true_lang.js +1 -1
  20. package/dist/es/fields/Cascader.vue_vue_type_script_setup_true_lang.js +1 -1
  21. package/dist/es/fields/Checkbox.vue_vue_type_script_setup_true_lang.js +1 -1
  22. package/dist/es/fields/CheckboxGroup.vue_vue_type_script_setup_true_lang.js +1 -1
  23. package/dist/es/fields/ColorPicker.vue_vue_type_script_setup_true_lang.js +1 -1
  24. package/dist/es/fields/Date.vue_vue_type_script_setup_true_lang.js +1 -1
  25. package/dist/es/fields/DateTime.vue_vue_type_script_setup_true_lang.js +1 -1
  26. package/dist/es/fields/Daterange.vue_vue_type_script_setup_true_lang.js +1 -1
  27. package/dist/es/fields/Display.vue_vue_type_script_setup_true_lang.js +1 -1
  28. package/dist/es/fields/DynamicField.vue_vue_type_script_setup_true_lang.js +1 -1
  29. package/dist/es/fields/Hidden.vue_vue_type_script_setup_true_lang.js +1 -1
  30. package/dist/es/fields/Link.vue_vue_type_script_setup_true_lang.js +1 -1
  31. package/dist/es/fields/Number.vue_vue_type_script_setup_true_lang.js +1 -1
  32. package/dist/es/fields/NumberRange.vue_vue_type_script_setup_true_lang.js +1 -1
  33. package/dist/es/fields/RadioGroup.vue_vue_type_script_setup_true_lang.js +1 -1
  34. package/dist/es/fields/Select.vue_vue_type_script_setup_true_lang.js +1 -1
  35. package/dist/es/fields/Switch.vue_vue_type_script_setup_true_lang.js +1 -1
  36. package/dist/es/fields/Text.vue_vue_type_script_setup_true_lang.js +1 -1
  37. package/dist/es/fields/Textarea.vue_vue_type_script_setup_true_lang.js +1 -1
  38. package/dist/es/fields/Time.vue_vue_type_script_setup_true_lang.js +1 -1
  39. package/dist/es/fields/Timerange.vue_vue_type_script_setup_true_lang.js +1 -1
  40. package/dist/es/index.js +2 -1
  41. package/dist/es/schema.js +4 -0
  42. package/dist/es/style.css +4 -1
  43. package/dist/es/submitForm.js +111 -8
  44. package/dist/es/utils/form.js +2 -2
  45. package/dist/style.css +4 -1
  46. package/dist/tmagic-form.umd.cjs +1865 -1598
  47. package/package.json +5 -5
  48. package/src/Form.vue +64 -3
  49. package/src/FormBox.vue +4 -0
  50. package/src/FormDialog.vue +4 -0
  51. package/src/FormDrawer.vue +4 -0
  52. package/src/containers/Container.vue +178 -54
  53. package/src/containers/Fieldset.vue +5 -2
  54. package/src/containers/GroupList.vue +1 -1
  55. package/src/containers/GroupListItem.vue +4 -3
  56. package/src/containers/Tabs.vue +10 -2
  57. package/src/containers/table/Table.vue +9 -3
  58. package/src/schema.ts +47 -0
  59. package/src/submitForm.ts +196 -16
  60. package/src/theme/container.scss +4 -1
  61. package/types/index.d.ts +1021 -421
@@ -38,6 +38,223 @@
38
38
  //#endregion
39
39
  dayjs = __toESM(dayjs, 1);
40
40
  dayjs_plugin_utc = __toESM(dayjs_plugin_utc, 1);
41
+ //#region packages/form/src/schema.ts
42
+ var FORM_DIFF_CONFIG_KEY = Symbol("mFormDiffConfig");
43
+ //#endregion
44
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheClear.js
45
+ /**
46
+ * Removes all key-value entries from the list cache.
47
+ *
48
+ * @private
49
+ * @name clear
50
+ * @memberOf ListCache
51
+ */
52
+ function listCacheClear() {
53
+ this.__data__ = [];
54
+ this.size = 0;
55
+ }
56
+ //#endregion
57
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/eq.js
58
+ /**
59
+ * Performs a
60
+ * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
61
+ * comparison between two values to determine if they are equivalent.
62
+ *
63
+ * @static
64
+ * @memberOf _
65
+ * @since 4.0.0
66
+ * @category Lang
67
+ * @param {*} value The value to compare.
68
+ * @param {*} other The other value to compare.
69
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
70
+ * @example
71
+ *
72
+ * var object = { 'a': 1 };
73
+ * var other = { 'a': 1 };
74
+ *
75
+ * _.eq(object, object);
76
+ * // => true
77
+ *
78
+ * _.eq(object, other);
79
+ * // => false
80
+ *
81
+ * _.eq('a', 'a');
82
+ * // => true
83
+ *
84
+ * _.eq('a', Object('a'));
85
+ * // => false
86
+ *
87
+ * _.eq(NaN, NaN);
88
+ * // => true
89
+ */
90
+ function eq(value, other) {
91
+ return value === other || value !== value && other !== other;
92
+ }
93
+ //#endregion
94
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assocIndexOf.js
95
+ /**
96
+ * Gets the index at which the `key` is found in `array` of key-value pairs.
97
+ *
98
+ * @private
99
+ * @param {Array} array The array to inspect.
100
+ * @param {*} key The key to search for.
101
+ * @returns {number} Returns the index of the matched value, else `-1`.
102
+ */
103
+ function assocIndexOf(array, key) {
104
+ var length = array.length;
105
+ while (length--) if (eq(array[length][0], key)) return length;
106
+ return -1;
107
+ }
108
+ //#endregion
109
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheDelete.js
110
+ /** Built-in value references. */
111
+ var splice = Array.prototype.splice;
112
+ /**
113
+ * Removes `key` and its value from the list cache.
114
+ *
115
+ * @private
116
+ * @name delete
117
+ * @memberOf ListCache
118
+ * @param {string} key The key of the value to remove.
119
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
120
+ */
121
+ function listCacheDelete(key) {
122
+ var data = this.__data__, index = assocIndexOf(data, key);
123
+ if (index < 0) return false;
124
+ if (index == data.length - 1) data.pop();
125
+ else splice.call(data, index, 1);
126
+ --this.size;
127
+ return true;
128
+ }
129
+ //#endregion
130
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheGet.js
131
+ /**
132
+ * Gets the list cache value for `key`.
133
+ *
134
+ * @private
135
+ * @name get
136
+ * @memberOf ListCache
137
+ * @param {string} key The key of the value to get.
138
+ * @returns {*} Returns the entry value.
139
+ */
140
+ function listCacheGet(key) {
141
+ var data = this.__data__, index = assocIndexOf(data, key);
142
+ return index < 0 ? void 0 : data[index][1];
143
+ }
144
+ //#endregion
145
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheHas.js
146
+ /**
147
+ * Checks if a list cache value for `key` exists.
148
+ *
149
+ * @private
150
+ * @name has
151
+ * @memberOf ListCache
152
+ * @param {string} key The key of the entry to check.
153
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
154
+ */
155
+ function listCacheHas(key) {
156
+ return assocIndexOf(this.__data__, key) > -1;
157
+ }
158
+ //#endregion
159
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheSet.js
160
+ /**
161
+ * Sets the list cache `key` to `value`.
162
+ *
163
+ * @private
164
+ * @name set
165
+ * @memberOf ListCache
166
+ * @param {string} key The key of the value to set.
167
+ * @param {*} value The value to set.
168
+ * @returns {Object} Returns the list cache instance.
169
+ */
170
+ function listCacheSet(key, value) {
171
+ var data = this.__data__, index = assocIndexOf(data, key);
172
+ if (index < 0) {
173
+ ++this.size;
174
+ data.push([key, value]);
175
+ } else data[index][1] = value;
176
+ return this;
177
+ }
178
+ //#endregion
179
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_ListCache.js
180
+ /**
181
+ * Creates an list cache object.
182
+ *
183
+ * @private
184
+ * @constructor
185
+ * @param {Array} [entries] The key-value pairs to cache.
186
+ */
187
+ function ListCache(entries) {
188
+ var index = -1, length = entries == null ? 0 : entries.length;
189
+ this.clear();
190
+ while (++index < length) {
191
+ var entry = entries[index];
192
+ this.set(entry[0], entry[1]);
193
+ }
194
+ }
195
+ ListCache.prototype.clear = listCacheClear;
196
+ ListCache.prototype["delete"] = listCacheDelete;
197
+ ListCache.prototype.get = listCacheGet;
198
+ ListCache.prototype.has = listCacheHas;
199
+ ListCache.prototype.set = listCacheSet;
200
+ //#endregion
201
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackClear.js
202
+ /**
203
+ * Removes all key-value entries from the stack.
204
+ *
205
+ * @private
206
+ * @name clear
207
+ * @memberOf Stack
208
+ */
209
+ function stackClear() {
210
+ this.__data__ = new ListCache();
211
+ this.size = 0;
212
+ }
213
+ //#endregion
214
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackDelete.js
215
+ /**
216
+ * Removes `key` and its value from the stack.
217
+ *
218
+ * @private
219
+ * @name delete
220
+ * @memberOf Stack
221
+ * @param {string} key The key of the value to remove.
222
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
223
+ */
224
+ function stackDelete(key) {
225
+ var data = this.__data__, result = data["delete"](key);
226
+ this.size = data.size;
227
+ return result;
228
+ }
229
+ //#endregion
230
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackGet.js
231
+ /**
232
+ * Gets the stack value for `key`.
233
+ *
234
+ * @private
235
+ * @name get
236
+ * @memberOf Stack
237
+ * @param {string} key The key of the value to get.
238
+ * @returns {*} Returns the entry value.
239
+ */
240
+ function stackGet(key) {
241
+ return this.__data__.get(key);
242
+ }
243
+ //#endregion
244
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackHas.js
245
+ /**
246
+ * Checks if a stack value for `key` exists.
247
+ *
248
+ * @private
249
+ * @name has
250
+ * @memberOf Stack
251
+ * @param {string} key The key of the entry to check.
252
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
253
+ */
254
+ function stackHas(key) {
255
+ return this.__data__.has(key);
256
+ }
257
+ //#endregion
41
258
  //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_freeGlobal.js
42
259
  /** Detect free variable `global` from Node.js. */
43
260
  var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
@@ -119,212 +336,55 @@
119
336
  return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);
120
337
  }
121
338
  //#endregion
122
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObjectLike.js
339
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObject.js
123
340
  /**
124
- * Checks if `value` is object-like. A value is object-like if it's not `null`
125
- * and has a `typeof` result of "object".
341
+ * Checks if `value` is the
342
+ * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
343
+ * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
126
344
  *
127
345
  * @static
128
346
  * @memberOf _
129
- * @since 4.0.0
347
+ * @since 0.1.0
130
348
  * @category Lang
131
349
  * @param {*} value The value to check.
132
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
350
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
133
351
  * @example
134
352
  *
135
- * _.isObjectLike({});
353
+ * _.isObject({});
136
354
  * // => true
137
355
  *
138
- * _.isObjectLike([1, 2, 3]);
356
+ * _.isObject([1, 2, 3]);
139
357
  * // => true
140
358
  *
141
- * _.isObjectLike(_.noop);
142
- * // => false
359
+ * _.isObject(_.noop);
360
+ * // => true
143
361
  *
144
- * _.isObjectLike(null);
362
+ * _.isObject(null);
145
363
  * // => false
146
364
  */
147
- function isObjectLike(value) {
148
- return value != null && typeof value == "object";
365
+ function isObject(value) {
366
+ var type = typeof value;
367
+ return value != null && (type == "object" || type == "function");
149
368
  }
150
369
  //#endregion
151
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSymbol.js
370
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isFunction.js
152
371
  /** `Object#toString` result references. */
153
- var symbolTag$3 = "[object Symbol]";
372
+ var asyncTag = "[object AsyncFunction]", funcTag$2 = "[object Function]", genTag$1 = "[object GeneratorFunction]", proxyTag = "[object Proxy]";
154
373
  /**
155
- * Checks if `value` is classified as a `Symbol` primitive or object.
374
+ * Checks if `value` is classified as a `Function` object.
156
375
  *
157
376
  * @static
158
377
  * @memberOf _
159
- * @since 4.0.0
378
+ * @since 0.1.0
160
379
  * @category Lang
161
380
  * @param {*} value The value to check.
162
- * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
381
+ * @returns {boolean} Returns `true` if `value` is a function, else `false`.
163
382
  * @example
164
383
  *
165
- * _.isSymbol(Symbol.iterator);
384
+ * _.isFunction(_);
166
385
  * // => true
167
386
  *
168
- * _.isSymbol('abc');
169
- * // => false
170
- */
171
- function isSymbol(value) {
172
- return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag$3;
173
- }
174
- //#endregion
175
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArray.js
176
- /**
177
- * Checks if `value` is classified as an `Array` object.
178
- *
179
- * @static
180
- * @memberOf _
181
- * @since 0.1.0
182
- * @category Lang
183
- * @param {*} value The value to check.
184
- * @returns {boolean} Returns `true` if `value` is an array, else `false`.
185
- * @example
186
- *
187
- * _.isArray([1, 2, 3]);
188
- * // => true
189
- *
190
- * _.isArray(document.body.children);
191
- * // => false
192
- *
193
- * _.isArray('abc');
194
- * // => false
195
- *
196
- * _.isArray(_.noop);
197
- * // => false
198
- */
199
- var isArray = Array.isArray;
200
- //#endregion
201
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_trimmedEndIndex.js
202
- /** Used to match a single whitespace character. */
203
- var reWhitespace = /\s/;
204
- /**
205
- * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace
206
- * character of `string`.
207
- *
208
- * @private
209
- * @param {string} string The string to inspect.
210
- * @returns {number} Returns the index of the last non-whitespace character.
211
- */
212
- function trimmedEndIndex(string) {
213
- var index = string.length;
214
- while (index-- && reWhitespace.test(string.charAt(index)));
215
- return index;
216
- }
217
- //#endregion
218
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTrim.js
219
- /** Used to match leading whitespace. */
220
- var reTrimStart = /^\s+/;
221
- /**
222
- * The base implementation of `_.trim`.
223
- *
224
- * @private
225
- * @param {string} string The string to trim.
226
- * @returns {string} Returns the trimmed string.
227
- */
228
- function baseTrim(string) {
229
- return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string;
230
- }
231
- //#endregion
232
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObject.js
233
- /**
234
- * Checks if `value` is the
235
- * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
236
- * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
237
- *
238
- * @static
239
- * @memberOf _
240
- * @since 0.1.0
241
- * @category Lang
242
- * @param {*} value The value to check.
243
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
244
- * @example
245
- *
246
- * _.isObject({});
247
- * // => true
248
- *
249
- * _.isObject([1, 2, 3]);
250
- * // => true
251
- *
252
- * _.isObject(_.noop);
253
- * // => true
254
- *
255
- * _.isObject(null);
256
- * // => false
257
- */
258
- function isObject(value) {
259
- var type = typeof value;
260
- return value != null && (type == "object" || type == "function");
261
- }
262
- //#endregion
263
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toNumber.js
264
- /** Used as references for various `Number` constants. */
265
- var NAN = NaN;
266
- /** Used to detect bad signed hexadecimal string values. */
267
- var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
268
- /** Used to detect binary string values. */
269
- var reIsBinary = /^0b[01]+$/i;
270
- /** Used to detect octal string values. */
271
- var reIsOctal = /^0o[0-7]+$/i;
272
- /** Built-in method references without a dependency on `root`. */
273
- var freeParseInt = parseInt;
274
- /**
275
- * Converts `value` to a number.
276
- *
277
- * @static
278
- * @memberOf _
279
- * @since 4.0.0
280
- * @category Lang
281
- * @param {*} value The value to process.
282
- * @returns {number} Returns the number.
283
- * @example
284
- *
285
- * _.toNumber(3.2);
286
- * // => 3.2
287
- *
288
- * _.toNumber(Number.MIN_VALUE);
289
- * // => 5e-324
290
- *
291
- * _.toNumber(Infinity);
292
- * // => Infinity
293
- *
294
- * _.toNumber('3.2');
295
- * // => 3.2
296
- */
297
- function toNumber(value) {
298
- if (typeof value == "number") return value;
299
- if (isSymbol(value)) return NAN;
300
- if (isObject(value)) {
301
- var other = typeof value.valueOf == "function" ? value.valueOf() : value;
302
- value = isObject(other) ? other + "" : other;
303
- }
304
- if (typeof value != "string") return value === 0 ? value : +value;
305
- value = baseTrim(value);
306
- var isBinary = reIsBinary.test(value);
307
- return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
308
- }
309
- //#endregion
310
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isFunction.js
311
- /** `Object#toString` result references. */
312
- var asyncTag = "[object AsyncFunction]", funcTag$2 = "[object Function]", genTag$1 = "[object GeneratorFunction]", proxyTag = "[object Proxy]";
313
- /**
314
- * Checks if `value` is classified as a `Function` object.
315
- *
316
- * @static
317
- * @memberOf _
318
- * @since 0.1.0
319
- * @category Lang
320
- * @param {*} value The value to check.
321
- * @returns {boolean} Returns `true` if `value` is a function, else `false`.
322
- * @example
323
- *
324
- * _.isFunction(_);
325
- * // => true
326
- *
327
- * _.isFunction(/abc/);
387
+ * _.isFunction(/abc/);
328
388
  * // => false
329
389
  */
330
390
  function isFunction(value) {
@@ -432,295 +492,441 @@
432
492
  return baseIsNative(value) ? value : void 0;
433
493
  }
434
494
  //#endregion
435
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_WeakMap.js
436
- var WeakMap = getNative(root, "WeakMap");
495
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Map.js
496
+ var Map$1 = getNative(root, "Map");
437
497
  //#endregion
438
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseCreate.js
439
- /** Built-in value references. */
440
- var objectCreate = Object.create;
498
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeCreate.js
499
+ var nativeCreate = getNative(Object, "create");
500
+ //#endregion
501
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashClear.js
441
502
  /**
442
- * The base implementation of `_.create` without support for assigning
443
- * properties to the created object.
503
+ * Removes all key-value entries from the hash.
444
504
  *
445
505
  * @private
446
- * @param {Object} proto The object to inherit from.
447
- * @returns {Object} Returns the new object.
506
+ * @name clear
507
+ * @memberOf Hash
448
508
  */
449
- var baseCreate = function() {
450
- function object() {}
451
- return function(proto) {
452
- if (!isObject(proto)) return {};
453
- if (objectCreate) return objectCreate(proto);
454
- object.prototype = proto;
455
- var result = new object();
456
- object.prototype = void 0;
457
- return result;
458
- };
459
- }();
509
+ function hashClear() {
510
+ this.__data__ = nativeCreate ? nativeCreate(null) : {};
511
+ this.size = 0;
512
+ }
460
513
  //#endregion
461
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copyArray.js
514
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashDelete.js
462
515
  /**
463
- * Copies the values of `source` to `array`.
516
+ * Removes `key` and its value from the hash.
464
517
  *
465
518
  * @private
466
- * @param {Array} source The array to copy values from.
467
- * @param {Array} [array=[]] The array to copy values to.
468
- * @returns {Array} Returns `array`.
519
+ * @name delete
520
+ * @memberOf Hash
521
+ * @param {Object} hash The hash to modify.
522
+ * @param {string} key The key of the value to remove.
523
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
469
524
  */
470
- function copyArray(source, array) {
471
- var index = -1, length = source.length;
472
- array || (array = Array(length));
473
- while (++index < length) array[index] = source[index];
474
- return array;
525
+ function hashDelete(key) {
526
+ var result = this.has(key) && delete this.__data__[key];
527
+ this.size -= result ? 1 : 0;
528
+ return result;
475
529
  }
476
530
  //#endregion
477
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_defineProperty.js
478
- var defineProperty = function() {
479
- try {
480
- var func = getNative(Object, "defineProperty");
481
- func({}, "", {});
482
- return func;
483
- } catch (e) {}
484
- }();
485
- //#endregion
486
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayEach.js
531
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashGet.js
532
+ /** Used to stand-in for `undefined` hash values. */
533
+ var HASH_UNDEFINED$2 = "__lodash_hash_undefined__";
534
+ /** Used to check objects for own properties. */
535
+ var hasOwnProperty$10 = Object.prototype.hasOwnProperty;
487
536
  /**
488
- * A specialized version of `_.forEach` for arrays without support for
489
- * iteratee shorthands.
537
+ * Gets the hash value for `key`.
490
538
  *
491
539
  * @private
492
- * @param {Array} [array] The array to iterate over.
493
- * @param {Function} iteratee The function invoked per iteration.
494
- * @returns {Array} Returns `array`.
540
+ * @name get
541
+ * @memberOf Hash
542
+ * @param {string} key The key of the value to get.
543
+ * @returns {*} Returns the entry value.
495
544
  */
496
- function arrayEach(array, iteratee) {
497
- var index = -1, length = array == null ? 0 : array.length;
498
- while (++index < length) if (iteratee(array[index], index, array) === false) break;
499
- return array;
545
+ function hashGet(key) {
546
+ var data = this.__data__;
547
+ if (nativeCreate) {
548
+ var result = data[key];
549
+ return result === HASH_UNDEFINED$2 ? void 0 : result;
550
+ }
551
+ return hasOwnProperty$10.call(data, key) ? data[key] : void 0;
500
552
  }
501
553
  //#endregion
502
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIndex.js
503
- /** Used as references for various `Number` constants. */
504
- var MAX_SAFE_INTEGER$1 = 9007199254740991;
505
- /** Used to detect unsigned integer values. */
506
- var reIsUint = /^(?:0|[1-9]\d*)$/;
554
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashHas.js
555
+ /** Used to check objects for own properties. */
556
+ var hasOwnProperty$9 = Object.prototype.hasOwnProperty;
507
557
  /**
508
- * Checks if `value` is a valid array-like index.
558
+ * Checks if a hash value for `key` exists.
509
559
  *
510
560
  * @private
511
- * @param {*} value The value to check.
512
- * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
513
- * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
561
+ * @name has
562
+ * @memberOf Hash
563
+ * @param {string} key The key of the entry to check.
564
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
514
565
  */
515
- function isIndex(value, length) {
516
- var type = typeof value;
517
- length = length == null ? MAX_SAFE_INTEGER$1 : length;
518
- return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;
566
+ function hashHas(key) {
567
+ var data = this.__data__;
568
+ return nativeCreate ? data[key] !== void 0 : hasOwnProperty$9.call(data, key);
519
569
  }
520
570
  //#endregion
521
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssignValue.js
571
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashSet.js
572
+ /** Used to stand-in for `undefined` hash values. */
573
+ var HASH_UNDEFINED$1 = "__lodash_hash_undefined__";
522
574
  /**
523
- * The base implementation of `assignValue` and `assignMergeValue` without
524
- * value checks.
575
+ * Sets the hash `key` to `value`.
525
576
  *
526
577
  * @private
527
- * @param {Object} object The object to modify.
528
- * @param {string} key The key of the property to assign.
529
- * @param {*} value The value to assign.
578
+ * @name set
579
+ * @memberOf Hash
580
+ * @param {string} key The key of the value to set.
581
+ * @param {*} value The value to set.
582
+ * @returns {Object} Returns the hash instance.
530
583
  */
531
- function baseAssignValue(object, key, value) {
532
- if (key == "__proto__" && defineProperty) defineProperty(object, key, {
533
- "configurable": true,
534
- "enumerable": true,
535
- "value": value,
536
- "writable": true
537
- });
538
- else object[key] = value;
584
+ function hashSet(key, value) {
585
+ var data = this.__data__;
586
+ this.size += this.has(key) ? 0 : 1;
587
+ data[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED$1 : value;
588
+ return this;
539
589
  }
540
590
  //#endregion
541
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/eq.js
591
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Hash.js
542
592
  /**
543
- * Performs a
544
- * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
545
- * comparison between two values to determine if they are equivalent.
546
- *
547
- * @static
548
- * @memberOf _
549
- * @since 4.0.0
550
- * @category Lang
551
- * @param {*} value The value to compare.
552
- * @param {*} other The other value to compare.
553
- * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
554
- * @example
555
- *
556
- * var object = { 'a': 1 };
557
- * var other = { 'a': 1 };
558
- *
559
- * _.eq(object, object);
560
- * // => true
561
- *
562
- * _.eq(object, other);
563
- * // => false
564
- *
565
- * _.eq('a', 'a');
566
- * // => true
567
- *
568
- * _.eq('a', Object('a'));
569
- * // => false
593
+ * Creates a hash object.
570
594
  *
571
- * _.eq(NaN, NaN);
572
- * // => true
595
+ * @private
596
+ * @constructor
597
+ * @param {Array} [entries] The key-value pairs to cache.
573
598
  */
574
- function eq(value, other) {
575
- return value === other || value !== value && other !== other;
599
+ function Hash(entries) {
600
+ var index = -1, length = entries == null ? 0 : entries.length;
601
+ this.clear();
602
+ while (++index < length) {
603
+ var entry = entries[index];
604
+ this.set(entry[0], entry[1]);
605
+ }
576
606
  }
607
+ Hash.prototype.clear = hashClear;
608
+ Hash.prototype["delete"] = hashDelete;
609
+ Hash.prototype.get = hashGet;
610
+ Hash.prototype.has = hashHas;
611
+ Hash.prototype.set = hashSet;
577
612
  //#endregion
578
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assignValue.js
579
- /** Used to check objects for own properties. */
580
- var hasOwnProperty$10 = Object.prototype.hasOwnProperty;
613
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheClear.js
581
614
  /**
582
- * Assigns `value` to `key` of `object` if the existing value is not equivalent
583
- * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
584
- * for equality comparisons.
615
+ * Removes all key-value entries from the map.
585
616
  *
586
617
  * @private
587
- * @param {Object} object The object to modify.
588
- * @param {string} key The key of the property to assign.
589
- * @param {*} value The value to assign.
618
+ * @name clear
619
+ * @memberOf MapCache
590
620
  */
591
- function assignValue(object, key, value) {
592
- var objValue = object[key];
593
- if (!(hasOwnProperty$10.call(object, key) && eq(objValue, value)) || value === void 0 && !(key in object)) baseAssignValue(object, key, value);
621
+ function mapCacheClear() {
622
+ this.size = 0;
623
+ this.__data__ = {
624
+ "hash": new Hash(),
625
+ "map": new (Map$1 || ListCache)(),
626
+ "string": new Hash()
627
+ };
594
628
  }
595
629
  //#endregion
596
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copyObject.js
630
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKeyable.js
597
631
  /**
598
- * Copies properties of `source` to `object`.
632
+ * Checks if `value` is suitable for use as unique object key.
599
633
  *
600
634
  * @private
601
- * @param {Object} source The object to copy properties from.
602
- * @param {Array} props The property identifiers to copy.
603
- * @param {Object} [object={}] The object to copy properties to.
604
- * @param {Function} [customizer] The function to customize copied values.
605
- * @returns {Object} Returns `object`.
635
+ * @param {*} value The value to check.
636
+ * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
606
637
  */
607
- function copyObject(source, props, object, customizer) {
608
- var isNew = !object;
609
- object || (object = {});
610
- var index = -1, length = props.length;
611
- while (++index < length) {
612
- var key = props[index];
613
- var newValue = customizer ? customizer(object[key], source[key], key, object, source) : void 0;
614
- if (newValue === void 0) newValue = source[key];
615
- if (isNew) baseAssignValue(object, key, newValue);
616
- else assignValue(object, key, newValue);
617
- }
618
- return object;
638
+ function isKeyable(value) {
639
+ var type = typeof value;
640
+ return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null;
619
641
  }
620
642
  //#endregion
621
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isLength.js
622
- /** Used as references for various `Number` constants. */
623
- var MAX_SAFE_INTEGER = 9007199254740991;
643
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getMapData.js
624
644
  /**
625
- * Checks if `value` is a valid array-like length.
626
- *
627
- * **Note:** This method is loosely based on
628
- * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
629
- *
630
- * @static
631
- * @memberOf _
632
- * @since 4.0.0
633
- * @category Lang
634
- * @param {*} value The value to check.
635
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
636
- * @example
637
- *
638
- * _.isLength(3);
639
- * // => true
640
- *
641
- * _.isLength(Number.MIN_VALUE);
642
- * // => false
643
- *
644
- * _.isLength(Infinity);
645
- * // => false
645
+ * Gets the data for `map`.
646
646
  *
647
- * _.isLength('3');
648
- * // => false
647
+ * @private
648
+ * @param {Object} map The map to query.
649
+ * @param {string} key The reference key.
650
+ * @returns {*} Returns the map data.
649
651
  */
650
- function isLength(value) {
651
- return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
652
+ function getMapData(map, key) {
653
+ var data = map.__data__;
654
+ return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map;
652
655
  }
653
656
  //#endregion
654
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArrayLike.js
657
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheDelete.js
655
658
  /**
656
- * Checks if `value` is array-like. A value is considered array-like if it's
657
- * not a function and has a `value.length` that's an integer greater than or
658
- * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
659
- *
660
- * @static
661
- * @memberOf _
662
- * @since 4.0.0
663
- * @category Lang
664
- * @param {*} value The value to check.
665
- * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
666
- * @example
667
- *
668
- * _.isArrayLike([1, 2, 3]);
669
- * // => true
670
- *
671
- * _.isArrayLike(document.body.children);
672
- * // => true
673
- *
674
- * _.isArrayLike('abc');
675
- * // => true
659
+ * Removes `key` and its value from the map.
676
660
  *
677
- * _.isArrayLike(_.noop);
678
- * // => false
661
+ * @private
662
+ * @name delete
663
+ * @memberOf MapCache
664
+ * @param {string} key The key of the value to remove.
665
+ * @returns {boolean} Returns `true` if the entry was removed, else `false`.
679
666
  */
680
- function isArrayLike(value) {
681
- return value != null && isLength(value.length) && !isFunction(value);
667
+ function mapCacheDelete(key) {
668
+ var result = getMapData(this, key)["delete"](key);
669
+ this.size -= result ? 1 : 0;
670
+ return result;
682
671
  }
683
672
  //#endregion
684
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isPrototype.js
685
- /** Used for built-in method references. */
686
- var objectProto$1 = Object.prototype;
673
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheGet.js
687
674
  /**
688
- * Checks if `value` is likely a prototype object.
675
+ * Gets the map value for `key`.
689
676
  *
690
677
  * @private
691
- * @param {*} value The value to check.
692
- * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
678
+ * @name get
679
+ * @memberOf MapCache
680
+ * @param {string} key The key of the value to get.
681
+ * @returns {*} Returns the entry value.
693
682
  */
694
- function isPrototype(value) {
695
- var Ctor = value && value.constructor;
696
- return value === (typeof Ctor == "function" && Ctor.prototype || objectProto$1);
683
+ function mapCacheGet(key) {
684
+ return getMapData(this, key).get(key);
697
685
  }
698
686
  //#endregion
699
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTimes.js
687
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheHas.js
700
688
  /**
701
- * The base implementation of `_.times` without support for iteratee shorthands
702
- * or max array length checks.
689
+ * Checks if a map value for `key` exists.
703
690
  *
704
691
  * @private
705
- * @param {number} n The number of times to invoke `iteratee`.
706
- * @param {Function} iteratee The function invoked per iteration.
707
- * @returns {Array} Returns the array of results.
692
+ * @name has
693
+ * @memberOf MapCache
694
+ * @param {string} key The key of the entry to check.
695
+ * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
708
696
  */
709
- function baseTimes(n, iteratee) {
710
- var index = -1, result = Array(n);
711
- while (++index < n) result[index] = iteratee(index);
712
- return result;
697
+ function mapCacheHas(key) {
698
+ return getMapData(this, key).has(key);
713
699
  }
714
700
  //#endregion
715
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsArguments.js
716
- /** `Object#toString` result references. */
717
- var argsTag$3 = "[object Arguments]";
701
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheSet.js
718
702
  /**
719
- * The base implementation of `_.isArguments`.
703
+ * Sets the map `key` to `value`.
720
704
  *
721
705
  * @private
722
- * @param {*} value The value to check.
723
- * @returns {boolean} Returns `true` if `value` is an `arguments` object,
706
+ * @name set
707
+ * @memberOf MapCache
708
+ * @param {string} key The key of the value to set.
709
+ * @param {*} value The value to set.
710
+ * @returns {Object} Returns the map cache instance.
711
+ */
712
+ function mapCacheSet(key, value) {
713
+ var data = getMapData(this, key), size = data.size;
714
+ data.set(key, value);
715
+ this.size += data.size == size ? 0 : 1;
716
+ return this;
717
+ }
718
+ //#endregion
719
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_MapCache.js
720
+ /**
721
+ * Creates a map cache object to store key-value pairs.
722
+ *
723
+ * @private
724
+ * @constructor
725
+ * @param {Array} [entries] The key-value pairs to cache.
726
+ */
727
+ function MapCache(entries) {
728
+ var index = -1, length = entries == null ? 0 : entries.length;
729
+ this.clear();
730
+ while (++index < length) {
731
+ var entry = entries[index];
732
+ this.set(entry[0], entry[1]);
733
+ }
734
+ }
735
+ MapCache.prototype.clear = mapCacheClear;
736
+ MapCache.prototype["delete"] = mapCacheDelete;
737
+ MapCache.prototype.get = mapCacheGet;
738
+ MapCache.prototype.has = mapCacheHas;
739
+ MapCache.prototype.set = mapCacheSet;
740
+ //#endregion
741
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackSet.js
742
+ /** Used as the size to enable large array optimizations. */
743
+ var LARGE_ARRAY_SIZE = 200;
744
+ /**
745
+ * Sets the stack `key` to `value`.
746
+ *
747
+ * @private
748
+ * @name set
749
+ * @memberOf Stack
750
+ * @param {string} key The key of the value to set.
751
+ * @param {*} value The value to set.
752
+ * @returns {Object} Returns the stack cache instance.
753
+ */
754
+ function stackSet(key, value) {
755
+ var data = this.__data__;
756
+ if (data instanceof ListCache) {
757
+ var pairs = data.__data__;
758
+ if (!Map$1 || pairs.length < LARGE_ARRAY_SIZE - 1) {
759
+ pairs.push([key, value]);
760
+ this.size = ++data.size;
761
+ return this;
762
+ }
763
+ data = this.__data__ = new MapCache(pairs);
764
+ }
765
+ data.set(key, value);
766
+ this.size = data.size;
767
+ return this;
768
+ }
769
+ //#endregion
770
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Stack.js
771
+ /**
772
+ * Creates a stack cache object to store key-value pairs.
773
+ *
774
+ * @private
775
+ * @constructor
776
+ * @param {Array} [entries] The key-value pairs to cache.
777
+ */
778
+ function Stack(entries) {
779
+ var data = this.__data__ = new ListCache(entries);
780
+ this.size = data.size;
781
+ }
782
+ Stack.prototype.clear = stackClear;
783
+ Stack.prototype["delete"] = stackDelete;
784
+ Stack.prototype.get = stackGet;
785
+ Stack.prototype.has = stackHas;
786
+ Stack.prototype.set = stackSet;
787
+ //#endregion
788
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayEach.js
789
+ /**
790
+ * A specialized version of `_.forEach` for arrays without support for
791
+ * iteratee shorthands.
792
+ *
793
+ * @private
794
+ * @param {Array} [array] The array to iterate over.
795
+ * @param {Function} iteratee The function invoked per iteration.
796
+ * @returns {Array} Returns `array`.
797
+ */
798
+ function arrayEach(array, iteratee) {
799
+ var index = -1, length = array == null ? 0 : array.length;
800
+ while (++index < length) if (iteratee(array[index], index, array) === false) break;
801
+ return array;
802
+ }
803
+ //#endregion
804
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_defineProperty.js
805
+ var defineProperty = function() {
806
+ try {
807
+ var func = getNative(Object, "defineProperty");
808
+ func({}, "", {});
809
+ return func;
810
+ } catch (e) {}
811
+ }();
812
+ //#endregion
813
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssignValue.js
814
+ /**
815
+ * The base implementation of `assignValue` and `assignMergeValue` without
816
+ * value checks.
817
+ *
818
+ * @private
819
+ * @param {Object} object The object to modify.
820
+ * @param {string} key The key of the property to assign.
821
+ * @param {*} value The value to assign.
822
+ */
823
+ function baseAssignValue(object, key, value) {
824
+ if (key == "__proto__" && defineProperty) defineProperty(object, key, {
825
+ "configurable": true,
826
+ "enumerable": true,
827
+ "value": value,
828
+ "writable": true
829
+ });
830
+ else object[key] = value;
831
+ }
832
+ //#endregion
833
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assignValue.js
834
+ /** Used to check objects for own properties. */
835
+ var hasOwnProperty$8 = Object.prototype.hasOwnProperty;
836
+ /**
837
+ * Assigns `value` to `key` of `object` if the existing value is not equivalent
838
+ * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
839
+ * for equality comparisons.
840
+ *
841
+ * @private
842
+ * @param {Object} object The object to modify.
843
+ * @param {string} key The key of the property to assign.
844
+ * @param {*} value The value to assign.
845
+ */
846
+ function assignValue(object, key, value) {
847
+ var objValue = object[key];
848
+ if (!(hasOwnProperty$8.call(object, key) && eq(objValue, value)) || value === void 0 && !(key in object)) baseAssignValue(object, key, value);
849
+ }
850
+ //#endregion
851
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copyObject.js
852
+ /**
853
+ * Copies properties of `source` to `object`.
854
+ *
855
+ * @private
856
+ * @param {Object} source The object to copy properties from.
857
+ * @param {Array} props The property identifiers to copy.
858
+ * @param {Object} [object={}] The object to copy properties to.
859
+ * @param {Function} [customizer] The function to customize copied values.
860
+ * @returns {Object} Returns `object`.
861
+ */
862
+ function copyObject(source, props, object, customizer) {
863
+ var isNew = !object;
864
+ object || (object = {});
865
+ var index = -1, length = props.length;
866
+ while (++index < length) {
867
+ var key = props[index];
868
+ var newValue = customizer ? customizer(object[key], source[key], key, object, source) : void 0;
869
+ if (newValue === void 0) newValue = source[key];
870
+ if (isNew) baseAssignValue(object, key, newValue);
871
+ else assignValue(object, key, newValue);
872
+ }
873
+ return object;
874
+ }
875
+ //#endregion
876
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTimes.js
877
+ /**
878
+ * The base implementation of `_.times` without support for iteratee shorthands
879
+ * or max array length checks.
880
+ *
881
+ * @private
882
+ * @param {number} n The number of times to invoke `iteratee`.
883
+ * @param {Function} iteratee The function invoked per iteration.
884
+ * @returns {Array} Returns the array of results.
885
+ */
886
+ function baseTimes(n, iteratee) {
887
+ var index = -1, result = Array(n);
888
+ while (++index < n) result[index] = iteratee(index);
889
+ return result;
890
+ }
891
+ //#endregion
892
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObjectLike.js
893
+ /**
894
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
895
+ * and has a `typeof` result of "object".
896
+ *
897
+ * @static
898
+ * @memberOf _
899
+ * @since 4.0.0
900
+ * @category Lang
901
+ * @param {*} value The value to check.
902
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
903
+ * @example
904
+ *
905
+ * _.isObjectLike({});
906
+ * // => true
907
+ *
908
+ * _.isObjectLike([1, 2, 3]);
909
+ * // => true
910
+ *
911
+ * _.isObjectLike(_.noop);
912
+ * // => false
913
+ *
914
+ * _.isObjectLike(null);
915
+ * // => false
916
+ */
917
+ function isObjectLike(value) {
918
+ return value != null && typeof value == "object";
919
+ }
920
+ //#endregion
921
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsArguments.js
922
+ /** `Object#toString` result references. */
923
+ var argsTag$3 = "[object Arguments]";
924
+ /**
925
+ * The base implementation of `_.isArguments`.
926
+ *
927
+ * @private
928
+ * @param {*} value The value to check.
929
+ * @returns {boolean} Returns `true` if `value` is an `arguments` object,
724
930
  */
725
931
  function baseIsArguments(value) {
726
932
  return isObjectLike(value) && baseGetTag(value) == argsTag$3;
@@ -728,11 +934,11 @@
728
934
  //#endregion
729
935
  //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArguments.js
730
936
  /** Used for built-in method references. */
731
- var objectProto = Object.prototype;
937
+ var objectProto$1 = Object.prototype;
732
938
  /** Used to check objects for own properties. */
733
- var hasOwnProperty$9 = objectProto.hasOwnProperty;
939
+ var hasOwnProperty$7 = objectProto$1.hasOwnProperty;
734
940
  /** Built-in value references. */
735
- var propertyIsEnumerable$1 = objectProto.propertyIsEnumerable;
941
+ var propertyIsEnumerable$1 = objectProto$1.propertyIsEnumerable;
736
942
  /**
737
943
  * Checks if `value` is likely an `arguments` object.
738
944
  *
@@ -754,9 +960,35 @@
754
960
  var isArguments = baseIsArguments(function() {
755
961
  return arguments;
756
962
  }()) ? baseIsArguments : function(value) {
757
- return isObjectLike(value) && hasOwnProperty$9.call(value, "callee") && !propertyIsEnumerable$1.call(value, "callee");
963
+ return isObjectLike(value) && hasOwnProperty$7.call(value, "callee") && !propertyIsEnumerable$1.call(value, "callee");
758
964
  };
759
965
  //#endregion
966
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArray.js
967
+ /**
968
+ * Checks if `value` is classified as an `Array` object.
969
+ *
970
+ * @static
971
+ * @memberOf _
972
+ * @since 0.1.0
973
+ * @category Lang
974
+ * @param {*} value The value to check.
975
+ * @returns {boolean} Returns `true` if `value` is an array, else `false`.
976
+ * @example
977
+ *
978
+ * _.isArray([1, 2, 3]);
979
+ * // => true
980
+ *
981
+ * _.isArray(document.body.children);
982
+ * // => false
983
+ *
984
+ * _.isArray('abc');
985
+ * // => false
986
+ *
987
+ * _.isArray(_.noop);
988
+ * // => false
989
+ */
990
+ var isArray = Array.isArray;
991
+ //#endregion
760
992
  //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubFalse.js
761
993
  /**
762
994
  * This method returns `false`.
@@ -801,16 +1033,68 @@
801
1033
  */
802
1034
  var isBuffer = (Buffer$2 ? Buffer$2.isBuffer : void 0) || stubFalse;
803
1035
  //#endregion
804
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsTypedArray.js
805
- /** `Object#toString` result references. */
806
- var argsTag$2 = "[object Arguments]", arrayTag$2 = "[object Array]", boolTag$3 = "[object Boolean]", dateTag$3 = "[object Date]", errorTag$2 = "[object Error]", funcTag$1 = "[object Function]", mapTag$6 = "[object Map]", numberTag$3 = "[object Number]", objectTag$3 = "[object Object]", regexpTag$3 = "[object RegExp]", setTag$6 = "[object Set]", stringTag$3 = "[object String]", weakMapTag$2 = "[object WeakMap]";
807
- var arrayBufferTag$3 = "[object ArrayBuffer]", dataViewTag$4 = "[object DataView]", float32Tag$2 = "[object Float32Array]", float64Tag$2 = "[object Float64Array]", int8Tag$2 = "[object Int8Array]", int16Tag$2 = "[object Int16Array]", int32Tag$2 = "[object Int32Array]", uint8Tag$2 = "[object Uint8Array]", uint8ClampedTag$2 = "[object Uint8ClampedArray]", uint16Tag$2 = "[object Uint16Array]", uint32Tag$2 = "[object Uint32Array]";
808
- /** Used to identify `toStringTag` values of typed arrays. */
809
- var typedArrayTags = {};
810
- typedArrayTags[float32Tag$2] = typedArrayTags[float64Tag$2] = typedArrayTags[int8Tag$2] = typedArrayTags[int16Tag$2] = typedArrayTags[int32Tag$2] = typedArrayTags[uint8Tag$2] = typedArrayTags[uint8ClampedTag$2] = typedArrayTags[uint16Tag$2] = typedArrayTags[uint32Tag$2] = true;
811
- typedArrayTags[argsTag$2] = typedArrayTags[arrayTag$2] = typedArrayTags[arrayBufferTag$3] = typedArrayTags[boolTag$3] = typedArrayTags[dataViewTag$4] = typedArrayTags[dateTag$3] = typedArrayTags[errorTag$2] = typedArrayTags[funcTag$1] = typedArrayTags[mapTag$6] = typedArrayTags[numberTag$3] = typedArrayTags[objectTag$3] = typedArrayTags[regexpTag$3] = typedArrayTags[setTag$6] = typedArrayTags[stringTag$3] = typedArrayTags[weakMapTag$2] = false;
812
- /**
813
- * The base implementation of `_.isTypedArray` without Node.js optimizations.
1036
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIndex.js
1037
+ /** Used as references for various `Number` constants. */
1038
+ var MAX_SAFE_INTEGER$1 = 9007199254740991;
1039
+ /** Used to detect unsigned integer values. */
1040
+ var reIsUint = /^(?:0|[1-9]\d*)$/;
1041
+ /**
1042
+ * Checks if `value` is a valid array-like index.
1043
+ *
1044
+ * @private
1045
+ * @param {*} value The value to check.
1046
+ * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
1047
+ * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
1048
+ */
1049
+ function isIndex(value, length) {
1050
+ var type = typeof value;
1051
+ length = length == null ? MAX_SAFE_INTEGER$1 : length;
1052
+ return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;
1053
+ }
1054
+ //#endregion
1055
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isLength.js
1056
+ /** Used as references for various `Number` constants. */
1057
+ var MAX_SAFE_INTEGER = 9007199254740991;
1058
+ /**
1059
+ * Checks if `value` is a valid array-like length.
1060
+ *
1061
+ * **Note:** This method is loosely based on
1062
+ * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
1063
+ *
1064
+ * @static
1065
+ * @memberOf _
1066
+ * @since 4.0.0
1067
+ * @category Lang
1068
+ * @param {*} value The value to check.
1069
+ * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
1070
+ * @example
1071
+ *
1072
+ * _.isLength(3);
1073
+ * // => true
1074
+ *
1075
+ * _.isLength(Number.MIN_VALUE);
1076
+ * // => false
1077
+ *
1078
+ * _.isLength(Infinity);
1079
+ * // => false
1080
+ *
1081
+ * _.isLength('3');
1082
+ * // => false
1083
+ */
1084
+ function isLength(value) {
1085
+ return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
1086
+ }
1087
+ //#endregion
1088
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsTypedArray.js
1089
+ /** `Object#toString` result references. */
1090
+ var argsTag$2 = "[object Arguments]", arrayTag$2 = "[object Array]", boolTag$3 = "[object Boolean]", dateTag$3 = "[object Date]", errorTag$2 = "[object Error]", funcTag$1 = "[object Function]", mapTag$6 = "[object Map]", numberTag$3 = "[object Number]", objectTag$3 = "[object Object]", regexpTag$3 = "[object RegExp]", setTag$6 = "[object Set]", stringTag$3 = "[object String]", weakMapTag$2 = "[object WeakMap]";
1091
+ var arrayBufferTag$3 = "[object ArrayBuffer]", dataViewTag$4 = "[object DataView]", float32Tag$2 = "[object Float32Array]", float64Tag$2 = "[object Float64Array]", int8Tag$2 = "[object Int8Array]", int16Tag$2 = "[object Int16Array]", int32Tag$2 = "[object Int32Array]", uint8Tag$2 = "[object Uint8Array]", uint8ClampedTag$2 = "[object Uint8ClampedArray]", uint16Tag$2 = "[object Uint16Array]", uint32Tag$2 = "[object Uint32Array]";
1092
+ /** Used to identify `toStringTag` values of typed arrays. */
1093
+ var typedArrayTags = {};
1094
+ typedArrayTags[float32Tag$2] = typedArrayTags[float64Tag$2] = typedArrayTags[int8Tag$2] = typedArrayTags[int16Tag$2] = typedArrayTags[int32Tag$2] = typedArrayTags[uint8Tag$2] = typedArrayTags[uint8ClampedTag$2] = typedArrayTags[uint16Tag$2] = typedArrayTags[uint32Tag$2] = true;
1095
+ typedArrayTags[argsTag$2] = typedArrayTags[arrayTag$2] = typedArrayTags[arrayBufferTag$3] = typedArrayTags[boolTag$3] = typedArrayTags[dataViewTag$4] = typedArrayTags[dateTag$3] = typedArrayTags[errorTag$2] = typedArrayTags[funcTag$1] = typedArrayTags[mapTag$6] = typedArrayTags[numberTag$3] = typedArrayTags[objectTag$3] = typedArrayTags[regexpTag$3] = typedArrayTags[setTag$6] = typedArrayTags[stringTag$3] = typedArrayTags[weakMapTag$2] = false;
1096
+ /**
1097
+ * The base implementation of `_.isTypedArray` without Node.js optimizations.
814
1098
  *
815
1099
  * @private
816
1100
  * @param {*} value The value to check.
@@ -873,7 +1157,7 @@
873
1157
  //#endregion
874
1158
  //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayLikeKeys.js
875
1159
  /** Used to check objects for own properties. */
876
- var hasOwnProperty$8 = Object.prototype.hasOwnProperty;
1160
+ var hasOwnProperty$6 = Object.prototype.hasOwnProperty;
877
1161
  /**
878
1162
  * Creates an array of the enumerable property names of the array-like `value`.
879
1163
  *
@@ -884,10 +1168,25 @@
884
1168
  */
885
1169
  function arrayLikeKeys(value, inherited) {
886
1170
  var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length = result.length;
887
- for (var key in value) if ((inherited || hasOwnProperty$8.call(value, key)) && !(skipIndexes && (key == "length" || isBuff && (key == "offset" || key == "parent") || isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || isIndex(key, length)))) result.push(key);
1171
+ for (var key in value) if ((inherited || hasOwnProperty$6.call(value, key)) && !(skipIndexes && (key == "length" || isBuff && (key == "offset" || key == "parent") || isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || isIndex(key, length)))) result.push(key);
888
1172
  return result;
889
1173
  }
890
1174
  //#endregion
1175
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isPrototype.js
1176
+ /** Used for built-in method references. */
1177
+ var objectProto = Object.prototype;
1178
+ /**
1179
+ * Checks if `value` is likely a prototype object.
1180
+ *
1181
+ * @private
1182
+ * @param {*} value The value to check.
1183
+ * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
1184
+ */
1185
+ function isPrototype(value) {
1186
+ var Ctor = value && value.constructor;
1187
+ return value === (typeof Ctor == "function" && Ctor.prototype || objectProto);
1188
+ }
1189
+ //#endregion
891
1190
  //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overArg.js
892
1191
  /**
893
1192
  * Creates a unary function that invokes `func` with its argument transformed.
@@ -908,7 +1207,7 @@
908
1207
  //#endregion
909
1208
  //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeys.js
910
1209
  /** Used to check objects for own properties. */
911
- var hasOwnProperty$7 = Object.prototype.hasOwnProperty;
1210
+ var hasOwnProperty$5 = Object.prototype.hasOwnProperty;
912
1211
  /**
913
1212
  * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
914
1213
  *
@@ -919,10 +1218,40 @@
919
1218
  function baseKeys(object) {
920
1219
  if (!isPrototype(object)) return nativeKeys(object);
921
1220
  var result = [];
922
- for (var key in Object(object)) if (hasOwnProperty$7.call(object, key) && key != "constructor") result.push(key);
1221
+ for (var key in Object(object)) if (hasOwnProperty$5.call(object, key) && key != "constructor") result.push(key);
923
1222
  return result;
924
1223
  }
925
1224
  //#endregion
1225
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArrayLike.js
1226
+ /**
1227
+ * Checks if `value` is array-like. A value is considered array-like if it's
1228
+ * not a function and has a `value.length` that's an integer greater than or
1229
+ * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
1230
+ *
1231
+ * @static
1232
+ * @memberOf _
1233
+ * @since 4.0.0
1234
+ * @category Lang
1235
+ * @param {*} value The value to check.
1236
+ * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
1237
+ * @example
1238
+ *
1239
+ * _.isArrayLike([1, 2, 3]);
1240
+ * // => true
1241
+ *
1242
+ * _.isArrayLike(document.body.children);
1243
+ * // => true
1244
+ *
1245
+ * _.isArrayLike('abc');
1246
+ * // => true
1247
+ *
1248
+ * _.isArrayLike(_.noop);
1249
+ * // => false
1250
+ */
1251
+ function isArrayLike(value) {
1252
+ return value != null && isLength(value.length) && !isFunction(value);
1253
+ }
1254
+ //#endregion
926
1255
  //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keys.js
927
1256
  /**
928
1257
  * Creates an array of the own enumerable property names of `object`.
@@ -956,6 +1285,20 @@
956
1285
  return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
957
1286
  }
958
1287
  //#endregion
1288
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssign.js
1289
+ /**
1290
+ * The base implementation of `_.assign` without support for multiple sources
1291
+ * or `customizer` functions.
1292
+ *
1293
+ * @private
1294
+ * @param {Object} object The destination object.
1295
+ * @param {Object} source The source object.
1296
+ * @returns {Object} Returns `object`.
1297
+ */
1298
+ function baseAssign(object, source) {
1299
+ return object && copyObject(source, keys(source), object);
1300
+ }
1301
+ //#endregion
959
1302
  //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeysIn.js
960
1303
  /**
961
1304
  * This function is like
@@ -974,7 +1317,7 @@
974
1317
  //#endregion
975
1318
  //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeysIn.js
976
1319
  /** Used to check objects for own properties. */
977
- var hasOwnProperty$6 = Object.prototype.hasOwnProperty;
1320
+ var hasOwnProperty$4 = Object.prototype.hasOwnProperty;
978
1321
  /**
979
1322
  * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
980
1323
  *
@@ -985,7 +1328,7 @@
985
1328
  function baseKeysIn(object) {
986
1329
  if (!isObject(object)) return nativeKeysIn(object);
987
1330
  var isProto = isPrototype(object), result = [];
988
- for (var key in object) if (!(key == "constructor" && (isProto || !hasOwnProperty$6.call(object, key)))) result.push(key);
1331
+ for (var key in object) if (!(key == "constructor" && (isProto || !hasOwnProperty$4.call(object, key)))) result.push(key);
989
1332
  return result;
990
1333
  }
991
1334
  //#endregion
@@ -1017,1035 +1360,892 @@
1017
1360
  return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
1018
1361
  }
1019
1362
  //#endregion
1020
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeCreate.js
1021
- var nativeCreate = getNative(Object, "create");
1022
- //#endregion
1023
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashClear.js
1363
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssignIn.js
1024
1364
  /**
1025
- * Removes all key-value entries from the hash.
1365
+ * The base implementation of `_.assignIn` without support for multiple sources
1366
+ * or `customizer` functions.
1026
1367
  *
1027
1368
  * @private
1028
- * @name clear
1029
- * @memberOf Hash
1369
+ * @param {Object} object The destination object.
1370
+ * @param {Object} source The source object.
1371
+ * @returns {Object} Returns `object`.
1030
1372
  */
1031
- function hashClear() {
1032
- this.__data__ = nativeCreate ? nativeCreate(null) : {};
1033
- this.size = 0;
1373
+ function baseAssignIn(object, source) {
1374
+ return object && copyObject(source, keysIn(source), object);
1034
1375
  }
1035
1376
  //#endregion
1036
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashDelete.js
1377
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneBuffer.js
1378
+ /** Detect free variable `exports`. */
1379
+ var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports;
1380
+ /** Detect free variable `module`. */
1381
+ var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module;
1382
+ /** Built-in value references. */
1383
+ var Buffer$1 = freeModule && freeModule.exports === freeExports ? root.Buffer : void 0, allocUnsafe = Buffer$1 ? Buffer$1.allocUnsafe : void 0;
1037
1384
  /**
1038
- * Removes `key` and its value from the hash.
1385
+ * Creates a clone of `buffer`.
1039
1386
  *
1040
1387
  * @private
1041
- * @name delete
1042
- * @memberOf Hash
1043
- * @param {Object} hash The hash to modify.
1044
- * @param {string} key The key of the value to remove.
1045
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
1388
+ * @param {Buffer} buffer The buffer to clone.
1389
+ * @param {boolean} [isDeep] Specify a deep clone.
1390
+ * @returns {Buffer} Returns the cloned buffer.
1046
1391
  */
1047
- function hashDelete(key) {
1048
- var result = this.has(key) && delete this.__data__[key];
1049
- this.size -= result ? 1 : 0;
1392
+ function cloneBuffer(buffer, isDeep) {
1393
+ if (isDeep) return buffer.slice();
1394
+ var length = buffer.length, result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
1395
+ buffer.copy(result);
1050
1396
  return result;
1051
1397
  }
1052
1398
  //#endregion
1053
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashGet.js
1054
- /** Used to stand-in for `undefined` hash values. */
1055
- var HASH_UNDEFINED$2 = "__lodash_hash_undefined__";
1056
- /** Used to check objects for own properties. */
1057
- var hasOwnProperty$5 = Object.prototype.hasOwnProperty;
1399
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copyArray.js
1058
1400
  /**
1059
- * Gets the hash value for `key`.
1401
+ * Copies the values of `source` to `array`.
1060
1402
  *
1061
1403
  * @private
1062
- * @name get
1063
- * @memberOf Hash
1064
- * @param {string} key The key of the value to get.
1065
- * @returns {*} Returns the entry value.
1404
+ * @param {Array} source The array to copy values from.
1405
+ * @param {Array} [array=[]] The array to copy values to.
1406
+ * @returns {Array} Returns `array`.
1066
1407
  */
1067
- function hashGet(key) {
1068
- var data = this.__data__;
1069
- if (nativeCreate) {
1070
- var result = data[key];
1071
- return result === HASH_UNDEFINED$2 ? void 0 : result;
1072
- }
1073
- return hasOwnProperty$5.call(data, key) ? data[key] : void 0;
1408
+ function copyArray(source, array) {
1409
+ var index = -1, length = source.length;
1410
+ array || (array = Array(length));
1411
+ while (++index < length) array[index] = source[index];
1412
+ return array;
1074
1413
  }
1075
1414
  //#endregion
1076
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashHas.js
1077
- /** Used to check objects for own properties. */
1078
- var hasOwnProperty$4 = Object.prototype.hasOwnProperty;
1415
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayFilter.js
1079
1416
  /**
1080
- * Checks if a hash value for `key` exists.
1417
+ * A specialized version of `_.filter` for arrays without support for
1418
+ * iteratee shorthands.
1081
1419
  *
1082
1420
  * @private
1083
- * @name has
1084
- * @memberOf Hash
1085
- * @param {string} key The key of the entry to check.
1086
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
1421
+ * @param {Array} [array] The array to iterate over.
1422
+ * @param {Function} predicate The function invoked per iteration.
1423
+ * @returns {Array} Returns the new filtered array.
1087
1424
  */
1088
- function hashHas(key) {
1089
- var data = this.__data__;
1090
- return nativeCreate ? data[key] !== void 0 : hasOwnProperty$4.call(data, key);
1425
+ function arrayFilter(array, predicate) {
1426
+ var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = [];
1427
+ while (++index < length) {
1428
+ var value = array[index];
1429
+ if (predicate(value, index, array)) result[resIndex++] = value;
1430
+ }
1431
+ return result;
1091
1432
  }
1092
1433
  //#endregion
1093
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashSet.js
1094
- /** Used to stand-in for `undefined` hash values. */
1095
- var HASH_UNDEFINED$1 = "__lodash_hash_undefined__";
1434
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubArray.js
1096
1435
  /**
1097
- * Sets the hash `key` to `value`.
1436
+ * This method returns a new empty array.
1098
1437
  *
1099
- * @private
1100
- * @name set
1101
- * @memberOf Hash
1102
- * @param {string} key The key of the value to set.
1103
- * @param {*} value The value to set.
1104
- * @returns {Object} Returns the hash instance.
1438
+ * @static
1439
+ * @memberOf _
1440
+ * @since 4.13.0
1441
+ * @category Util
1442
+ * @returns {Array} Returns the new empty array.
1443
+ * @example
1444
+ *
1445
+ * var arrays = _.times(2, _.stubArray);
1446
+ *
1447
+ * console.log(arrays);
1448
+ * // => [[], []]
1449
+ *
1450
+ * console.log(arrays[0] === arrays[1]);
1451
+ * // => false
1105
1452
  */
1106
- function hashSet(key, value) {
1107
- var data = this.__data__;
1108
- this.size += this.has(key) ? 0 : 1;
1109
- data[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED$1 : value;
1110
- return this;
1453
+ function stubArray() {
1454
+ return [];
1111
1455
  }
1112
1456
  //#endregion
1113
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Hash.js
1457
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getSymbols.js
1458
+ /** Built-in value references. */
1459
+ var propertyIsEnumerable = Object.prototype.propertyIsEnumerable;
1460
+ var nativeGetSymbols = Object.getOwnPropertySymbols;
1114
1461
  /**
1115
- * Creates a hash object.
1462
+ * Creates an array of the own enumerable symbols of `object`.
1116
1463
  *
1117
1464
  * @private
1118
- * @constructor
1119
- * @param {Array} [entries] The key-value pairs to cache.
1465
+ * @param {Object} object The object to query.
1466
+ * @returns {Array} Returns the array of symbols.
1120
1467
  */
1121
- function Hash(entries) {
1122
- var index = -1, length = entries == null ? 0 : entries.length;
1123
- this.clear();
1124
- while (++index < length) {
1125
- var entry = entries[index];
1126
- this.set(entry[0], entry[1]);
1127
- }
1128
- }
1129
- Hash.prototype.clear = hashClear;
1130
- Hash.prototype["delete"] = hashDelete;
1131
- Hash.prototype.get = hashGet;
1132
- Hash.prototype.has = hashHas;
1133
- Hash.prototype.set = hashSet;
1468
+ var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
1469
+ if (object == null) return [];
1470
+ object = Object(object);
1471
+ return arrayFilter(nativeGetSymbols(object), function(symbol) {
1472
+ return propertyIsEnumerable.call(object, symbol);
1473
+ });
1474
+ };
1134
1475
  //#endregion
1135
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheClear.js
1476
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copySymbols.js
1136
1477
  /**
1137
- * Removes all key-value entries from the list cache.
1478
+ * Copies own symbols of `source` to `object`.
1138
1479
  *
1139
1480
  * @private
1140
- * @name clear
1141
- * @memberOf ListCache
1481
+ * @param {Object} source The object to copy symbols from.
1482
+ * @param {Object} [object={}] The object to copy symbols to.
1483
+ * @returns {Object} Returns `object`.
1142
1484
  */
1143
- function listCacheClear() {
1144
- this.__data__ = [];
1145
- this.size = 0;
1485
+ function copySymbols(source, object) {
1486
+ return copyObject(source, getSymbols(source), object);
1146
1487
  }
1147
1488
  //#endregion
1148
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assocIndexOf.js
1489
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayPush.js
1149
1490
  /**
1150
- * Gets the index at which the `key` is found in `array` of key-value pairs.
1491
+ * Appends the elements of `values` to `array`.
1151
1492
  *
1152
1493
  * @private
1153
- * @param {Array} array The array to inspect.
1154
- * @param {*} key The key to search for.
1155
- * @returns {number} Returns the index of the matched value, else `-1`.
1494
+ * @param {Array} array The array to modify.
1495
+ * @param {Array} values The values to append.
1496
+ * @returns {Array} Returns `array`.
1156
1497
  */
1157
- function assocIndexOf(array, key) {
1158
- var length = array.length;
1159
- while (length--) if (eq(array[length][0], key)) return length;
1160
- return -1;
1498
+ function arrayPush(array, values) {
1499
+ var index = -1, length = values.length, offset = array.length;
1500
+ while (++index < length) array[offset + index] = values[index];
1501
+ return array;
1161
1502
  }
1162
1503
  //#endregion
1163
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheDelete.js
1504
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getPrototype.js
1164
1505
  /** Built-in value references. */
1165
- var splice = Array.prototype.splice;
1506
+ var getPrototype = overArg(Object.getPrototypeOf, Object);
1507
+ //#endregion
1508
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getSymbolsIn.js
1166
1509
  /**
1167
- * Removes `key` and its value from the list cache.
1510
+ * Creates an array of the own and inherited enumerable symbols of `object`.
1168
1511
  *
1169
1512
  * @private
1170
- * @name delete
1171
- * @memberOf ListCache
1172
- * @param {string} key The key of the value to remove.
1173
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
1513
+ * @param {Object} object The object to query.
1514
+ * @returns {Array} Returns the array of symbols.
1174
1515
  */
1175
- function listCacheDelete(key) {
1176
- var data = this.__data__, index = assocIndexOf(data, key);
1177
- if (index < 0) return false;
1178
- if (index == data.length - 1) data.pop();
1179
- else splice.call(data, index, 1);
1180
- --this.size;
1181
- return true;
1182
- }
1516
+ var getSymbolsIn = !Object.getOwnPropertySymbols ? stubArray : function(object) {
1517
+ var result = [];
1518
+ while (object) {
1519
+ arrayPush(result, getSymbols(object));
1520
+ object = getPrototype(object);
1521
+ }
1522
+ return result;
1523
+ };
1183
1524
  //#endregion
1184
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheGet.js
1525
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copySymbolsIn.js
1185
1526
  /**
1186
- * Gets the list cache value for `key`.
1527
+ * Copies own and inherited symbols of `source` to `object`.
1187
1528
  *
1188
1529
  * @private
1189
- * @name get
1190
- * @memberOf ListCache
1191
- * @param {string} key The key of the value to get.
1192
- * @returns {*} Returns the entry value.
1530
+ * @param {Object} source The object to copy symbols from.
1531
+ * @param {Object} [object={}] The object to copy symbols to.
1532
+ * @returns {Object} Returns `object`.
1193
1533
  */
1194
- function listCacheGet(key) {
1195
- var data = this.__data__, index = assocIndexOf(data, key);
1196
- return index < 0 ? void 0 : data[index][1];
1534
+ function copySymbolsIn(source, object) {
1535
+ return copyObject(source, getSymbolsIn(source), object);
1197
1536
  }
1198
1537
  //#endregion
1199
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheHas.js
1538
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetAllKeys.js
1200
1539
  /**
1201
- * Checks if a list cache value for `key` exists.
1540
+ * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
1541
+ * `keysFunc` and `symbolsFunc` to get the enumerable property names and
1542
+ * symbols of `object`.
1202
1543
  *
1203
1544
  * @private
1204
- * @name has
1205
- * @memberOf ListCache
1206
- * @param {string} key The key of the entry to check.
1207
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
1545
+ * @param {Object} object The object to query.
1546
+ * @param {Function} keysFunc The function to get the keys of `object`.
1547
+ * @param {Function} symbolsFunc The function to get the symbols of `object`.
1548
+ * @returns {Array} Returns the array of property names and symbols.
1208
1549
  */
1209
- function listCacheHas(key) {
1210
- return assocIndexOf(this.__data__, key) > -1;
1550
+ function baseGetAllKeys(object, keysFunc, symbolsFunc) {
1551
+ var result = keysFunc(object);
1552
+ return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
1211
1553
  }
1212
1554
  //#endregion
1213
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheSet.js
1555
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeys.js
1214
1556
  /**
1215
- * Sets the list cache `key` to `value`.
1557
+ * Creates an array of own enumerable property names and symbols of `object`.
1216
1558
  *
1217
1559
  * @private
1218
- * @name set
1219
- * @memberOf ListCache
1220
- * @param {string} key The key of the value to set.
1221
- * @param {*} value The value to set.
1222
- * @returns {Object} Returns the list cache instance.
1560
+ * @param {Object} object The object to query.
1561
+ * @returns {Array} Returns the array of property names and symbols.
1223
1562
  */
1224
- function listCacheSet(key, value) {
1225
- var data = this.__data__, index = assocIndexOf(data, key);
1226
- if (index < 0) {
1227
- ++this.size;
1228
- data.push([key, value]);
1229
- } else data[index][1] = value;
1230
- return this;
1563
+ function getAllKeys(object) {
1564
+ return baseGetAllKeys(object, keys, getSymbols);
1231
1565
  }
1232
1566
  //#endregion
1233
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_ListCache.js
1567
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeysIn.js
1234
1568
  /**
1235
- * Creates an list cache object.
1569
+ * Creates an array of own and inherited enumerable property names and
1570
+ * symbols of `object`.
1236
1571
  *
1237
1572
  * @private
1238
- * @constructor
1239
- * @param {Array} [entries] The key-value pairs to cache.
1573
+ * @param {Object} object The object to query.
1574
+ * @returns {Array} Returns the array of property names and symbols.
1240
1575
  */
1241
- function ListCache(entries) {
1242
- var index = -1, length = entries == null ? 0 : entries.length;
1243
- this.clear();
1244
- while (++index < length) {
1245
- var entry = entries[index];
1246
- this.set(entry[0], entry[1]);
1247
- }
1576
+ function getAllKeysIn(object) {
1577
+ return baseGetAllKeys(object, keysIn, getSymbolsIn);
1248
1578
  }
1249
- ListCache.prototype.clear = listCacheClear;
1250
- ListCache.prototype["delete"] = listCacheDelete;
1251
- ListCache.prototype.get = listCacheGet;
1252
- ListCache.prototype.has = listCacheHas;
1253
- ListCache.prototype.set = listCacheSet;
1254
1579
  //#endregion
1255
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Map.js
1256
- var Map$1 = getNative(root, "Map");
1580
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_DataView.js
1581
+ var DataView = getNative(root, "DataView");
1257
1582
  //#endregion
1258
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheClear.js
1583
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Promise.js
1584
+ var Promise$1 = getNative(root, "Promise");
1585
+ //#endregion
1586
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Set.js
1587
+ var Set$1 = getNative(root, "Set");
1588
+ //#endregion
1589
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_WeakMap.js
1590
+ var WeakMap = getNative(root, "WeakMap");
1591
+ //#endregion
1592
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getTag.js
1593
+ /** `Object#toString` result references. */
1594
+ var mapTag$5 = "[object Map]", objectTag$2 = "[object Object]", promiseTag = "[object Promise]", setTag$5 = "[object Set]", weakMapTag$1 = "[object WeakMap]";
1595
+ var dataViewTag$3 = "[object DataView]";
1596
+ /** Used to detect maps, sets, and weakmaps. */
1597
+ var dataViewCtorString = toSource(DataView), mapCtorString = toSource(Map$1), promiseCtorString = toSource(Promise$1), setCtorString = toSource(Set$1), weakMapCtorString = toSource(WeakMap);
1259
1598
  /**
1260
- * Removes all key-value entries from the map.
1599
+ * Gets the `toStringTag` of `value`.
1261
1600
  *
1262
1601
  * @private
1263
- * @name clear
1264
- * @memberOf MapCache
1602
+ * @param {*} value The value to query.
1603
+ * @returns {string} Returns the `toStringTag`.
1265
1604
  */
1266
- function mapCacheClear() {
1267
- this.size = 0;
1268
- this.__data__ = {
1269
- "hash": new Hash(),
1270
- "map": new (Map$1 || ListCache)(),
1271
- "string": new Hash()
1272
- };
1273
- }
1605
+ var getTag = baseGetTag;
1606
+ if (DataView && getTag(new DataView(/* @__PURE__ */ new ArrayBuffer(1))) != dataViewTag$3 || Map$1 && getTag(new Map$1()) != mapTag$5 || Promise$1 && getTag(Promise$1.resolve()) != promiseTag || Set$1 && getTag(new Set$1()) != setTag$5 || WeakMap && getTag(new WeakMap()) != weakMapTag$1) getTag = function(value) {
1607
+ var result = baseGetTag(value), Ctor = result == objectTag$2 ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : "";
1608
+ if (ctorString) switch (ctorString) {
1609
+ case dataViewCtorString: return dataViewTag$3;
1610
+ case mapCtorString: return mapTag$5;
1611
+ case promiseCtorString: return promiseTag;
1612
+ case setCtorString: return setTag$5;
1613
+ case weakMapCtorString: return weakMapTag$1;
1614
+ }
1615
+ return result;
1616
+ };
1617
+ var _getTag_default = getTag;
1274
1618
  //#endregion
1275
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKeyable.js
1619
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneArray.js
1620
+ /** Used to check objects for own properties. */
1621
+ var hasOwnProperty$3 = Object.prototype.hasOwnProperty;
1276
1622
  /**
1277
- * Checks if `value` is suitable for use as unique object key.
1623
+ * Initializes an array clone.
1278
1624
  *
1279
1625
  * @private
1280
- * @param {*} value The value to check.
1281
- * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
1626
+ * @param {Array} array The array to clone.
1627
+ * @returns {Array} Returns the initialized clone.
1282
1628
  */
1283
- function isKeyable(value) {
1284
- var type = typeof value;
1285
- return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null;
1629
+ function initCloneArray(array) {
1630
+ var length = array.length, result = new array.constructor(length);
1631
+ if (length && typeof array[0] == "string" && hasOwnProperty$3.call(array, "index")) {
1632
+ result.index = array.index;
1633
+ result.input = array.input;
1634
+ }
1635
+ return result;
1286
1636
  }
1287
1637
  //#endregion
1288
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getMapData.js
1638
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Uint8Array.js
1639
+ /** Built-in value references. */
1640
+ var Uint8Array$1 = root.Uint8Array;
1641
+ //#endregion
1642
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneArrayBuffer.js
1289
1643
  /**
1290
- * Gets the data for `map`.
1644
+ * Creates a clone of `arrayBuffer`.
1291
1645
  *
1292
1646
  * @private
1293
- * @param {Object} map The map to query.
1294
- * @param {string} key The reference key.
1295
- * @returns {*} Returns the map data.
1647
+ * @param {ArrayBuffer} arrayBuffer The array buffer to clone.
1648
+ * @returns {ArrayBuffer} Returns the cloned array buffer.
1296
1649
  */
1297
- function getMapData(map, key) {
1298
- var data = map.__data__;
1299
- return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map;
1650
+ function cloneArrayBuffer(arrayBuffer) {
1651
+ var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
1652
+ new Uint8Array$1(result).set(new Uint8Array$1(arrayBuffer));
1653
+ return result;
1300
1654
  }
1301
1655
  //#endregion
1302
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheDelete.js
1656
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneDataView.js
1303
1657
  /**
1304
- * Removes `key` and its value from the map.
1658
+ * Creates a clone of `dataView`.
1305
1659
  *
1306
1660
  * @private
1307
- * @name delete
1308
- * @memberOf MapCache
1309
- * @param {string} key The key of the value to remove.
1310
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
1661
+ * @param {Object} dataView The data view to clone.
1662
+ * @param {boolean} [isDeep] Specify a deep clone.
1663
+ * @returns {Object} Returns the cloned data view.
1311
1664
  */
1312
- function mapCacheDelete(key) {
1313
- var result = getMapData(this, key)["delete"](key);
1314
- this.size -= result ? 1 : 0;
1315
- return result;
1665
+ function cloneDataView(dataView, isDeep) {
1666
+ var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
1667
+ return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
1316
1668
  }
1317
1669
  //#endregion
1318
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheGet.js
1670
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneRegExp.js
1671
+ /** Used to match `RegExp` flags from their coerced string values. */
1672
+ var reFlags = /\w*$/;
1319
1673
  /**
1320
- * Gets the map value for `key`.
1674
+ * Creates a clone of `regexp`.
1321
1675
  *
1322
1676
  * @private
1323
- * @name get
1324
- * @memberOf MapCache
1325
- * @param {string} key The key of the value to get.
1326
- * @returns {*} Returns the entry value.
1677
+ * @param {Object} regexp The regexp to clone.
1678
+ * @returns {Object} Returns the cloned regexp.
1327
1679
  */
1328
- function mapCacheGet(key) {
1329
- return getMapData(this, key).get(key);
1680
+ function cloneRegExp(regexp) {
1681
+ var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
1682
+ result.lastIndex = regexp.lastIndex;
1683
+ return result;
1330
1684
  }
1331
1685
  //#endregion
1332
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheHas.js
1686
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneSymbol.js
1687
+ /** Used to convert symbols to primitives and strings. */
1688
+ var symbolProto$1 = Symbol$1 ? Symbol$1.prototype : void 0, symbolValueOf$1 = symbolProto$1 ? symbolProto$1.valueOf : void 0;
1333
1689
  /**
1334
- * Checks if a map value for `key` exists.
1690
+ * Creates a clone of the `symbol` object.
1335
1691
  *
1336
1692
  * @private
1337
- * @name has
1338
- * @memberOf MapCache
1339
- * @param {string} key The key of the entry to check.
1340
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
1693
+ * @param {Object} symbol The symbol object to clone.
1694
+ * @returns {Object} Returns the cloned symbol object.
1341
1695
  */
1342
- function mapCacheHas(key) {
1343
- return getMapData(this, key).has(key);
1696
+ function cloneSymbol(symbol) {
1697
+ return symbolValueOf$1 ? Object(symbolValueOf$1.call(symbol)) : {};
1344
1698
  }
1345
1699
  //#endregion
1346
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheSet.js
1700
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneTypedArray.js
1347
1701
  /**
1348
- * Sets the map `key` to `value`.
1702
+ * Creates a clone of `typedArray`.
1349
1703
  *
1350
1704
  * @private
1351
- * @name set
1352
- * @memberOf MapCache
1353
- * @param {string} key The key of the value to set.
1354
- * @param {*} value The value to set.
1355
- * @returns {Object} Returns the map cache instance.
1705
+ * @param {Object} typedArray The typed array to clone.
1706
+ * @param {boolean} [isDeep] Specify a deep clone.
1707
+ * @returns {Object} Returns the cloned typed array.
1356
1708
  */
1357
- function mapCacheSet(key, value) {
1358
- var data = getMapData(this, key), size = data.size;
1359
- data.set(key, value);
1360
- this.size += data.size == size ? 0 : 1;
1361
- return this;
1709
+ function cloneTypedArray(typedArray, isDeep) {
1710
+ var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
1711
+ return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
1362
1712
  }
1363
1713
  //#endregion
1364
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_MapCache.js
1714
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneByTag.js
1715
+ /** `Object#toString` result references. */
1716
+ var boolTag$2 = "[object Boolean]", dateTag$2 = "[object Date]", mapTag$4 = "[object Map]", numberTag$2 = "[object Number]", regexpTag$2 = "[object RegExp]", setTag$4 = "[object Set]", stringTag$2 = "[object String]", symbolTag$3 = "[object Symbol]";
1717
+ var arrayBufferTag$2 = "[object ArrayBuffer]", dataViewTag$2 = "[object DataView]", float32Tag$1 = "[object Float32Array]", float64Tag$1 = "[object Float64Array]", int8Tag$1 = "[object Int8Array]", int16Tag$1 = "[object Int16Array]", int32Tag$1 = "[object Int32Array]", uint8Tag$1 = "[object Uint8Array]", uint8ClampedTag$1 = "[object Uint8ClampedArray]", uint16Tag$1 = "[object Uint16Array]", uint32Tag$1 = "[object Uint32Array]";
1365
1718
  /**
1366
- * Creates a map cache object to store key-value pairs.
1719
+ * Initializes an object clone based on its `toStringTag`.
1367
1720
  *
1368
- * @private
1369
- * @constructor
1370
- * @param {Array} [entries] The key-value pairs to cache.
1371
- */
1372
- function MapCache(entries) {
1373
- var index = -1, length = entries == null ? 0 : entries.length;
1374
- this.clear();
1375
- while (++index < length) {
1376
- var entry = entries[index];
1377
- this.set(entry[0], entry[1]);
1378
- }
1379
- }
1380
- MapCache.prototype.clear = mapCacheClear;
1381
- MapCache.prototype["delete"] = mapCacheDelete;
1382
- MapCache.prototype.get = mapCacheGet;
1383
- MapCache.prototype.has = mapCacheHas;
1384
- MapCache.prototype.set = mapCacheSet;
1385
- //#endregion
1386
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayPush.js
1387
- /**
1388
- * Appends the elements of `values` to `array`.
1721
+ * **Note:** This function only supports cloning values with tags of
1722
+ * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.
1389
1723
  *
1390
1724
  * @private
1391
- * @param {Array} array The array to modify.
1392
- * @param {Array} values The values to append.
1393
- * @returns {Array} Returns `array`.
1725
+ * @param {Object} object The object to clone.
1726
+ * @param {string} tag The `toStringTag` of the object to clone.
1727
+ * @param {boolean} [isDeep] Specify a deep clone.
1728
+ * @returns {Object} Returns the initialized clone.
1394
1729
  */
1395
- function arrayPush(array, values) {
1396
- var index = -1, length = values.length, offset = array.length;
1397
- while (++index < length) array[offset + index] = values[index];
1398
- return array;
1730
+ function initCloneByTag(object, tag, isDeep) {
1731
+ var Ctor = object.constructor;
1732
+ switch (tag) {
1733
+ case arrayBufferTag$2: return cloneArrayBuffer(object);
1734
+ case boolTag$2:
1735
+ case dateTag$2: return new Ctor(+object);
1736
+ case dataViewTag$2: return cloneDataView(object, isDeep);
1737
+ case float32Tag$1:
1738
+ case float64Tag$1:
1739
+ case int8Tag$1:
1740
+ case int16Tag$1:
1741
+ case int32Tag$1:
1742
+ case uint8Tag$1:
1743
+ case uint8ClampedTag$1:
1744
+ case uint16Tag$1:
1745
+ case uint32Tag$1: return cloneTypedArray(object, isDeep);
1746
+ case mapTag$4: return new Ctor();
1747
+ case numberTag$2:
1748
+ case stringTag$2: return new Ctor(object);
1749
+ case regexpTag$2: return cloneRegExp(object);
1750
+ case setTag$4: return new Ctor();
1751
+ case symbolTag$3: return cloneSymbol(object);
1752
+ }
1399
1753
  }
1400
1754
  //#endregion
1401
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getPrototype.js
1755
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseCreate.js
1402
1756
  /** Built-in value references. */
1403
- var getPrototype = overArg(Object.getPrototypeOf, Object);
1404
- //#endregion
1405
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackClear.js
1757
+ var objectCreate = Object.create;
1406
1758
  /**
1407
- * Removes all key-value entries from the stack.
1759
+ * The base implementation of `_.create` without support for assigning
1760
+ * properties to the created object.
1408
1761
  *
1409
1762
  * @private
1410
- * @name clear
1411
- * @memberOf Stack
1763
+ * @param {Object} proto The object to inherit from.
1764
+ * @returns {Object} Returns the new object.
1412
1765
  */
1413
- function stackClear() {
1414
- this.__data__ = new ListCache();
1415
- this.size = 0;
1416
- }
1766
+ var baseCreate = function() {
1767
+ function object() {}
1768
+ return function(proto) {
1769
+ if (!isObject(proto)) return {};
1770
+ if (objectCreate) return objectCreate(proto);
1771
+ object.prototype = proto;
1772
+ var result = new object();
1773
+ object.prototype = void 0;
1774
+ return result;
1775
+ };
1776
+ }();
1417
1777
  //#endregion
1418
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackDelete.js
1778
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneObject.js
1419
1779
  /**
1420
- * Removes `key` and its value from the stack.
1780
+ * Initializes an object clone.
1421
1781
  *
1422
1782
  * @private
1423
- * @name delete
1424
- * @memberOf Stack
1425
- * @param {string} key The key of the value to remove.
1426
- * @returns {boolean} Returns `true` if the entry was removed, else `false`.
1783
+ * @param {Object} object The object to clone.
1784
+ * @returns {Object} Returns the initialized clone.
1427
1785
  */
1428
- function stackDelete(key) {
1429
- var data = this.__data__, result = data["delete"](key);
1430
- this.size = data.size;
1431
- return result;
1786
+ function initCloneObject(object) {
1787
+ return typeof object.constructor == "function" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};
1432
1788
  }
1433
1789
  //#endregion
1434
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackGet.js
1790
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsMap.js
1791
+ /** `Object#toString` result references. */
1792
+ var mapTag$3 = "[object Map]";
1435
1793
  /**
1436
- * Gets the stack value for `key`.
1794
+ * The base implementation of `_.isMap` without Node.js optimizations.
1437
1795
  *
1438
1796
  * @private
1439
- * @name get
1440
- * @memberOf Stack
1441
- * @param {string} key The key of the value to get.
1442
- * @returns {*} Returns the entry value.
1797
+ * @param {*} value The value to check.
1798
+ * @returns {boolean} Returns `true` if `value` is a map, else `false`.
1443
1799
  */
1444
- function stackGet(key) {
1445
- return this.__data__.get(key);
1800
+ function baseIsMap(value) {
1801
+ return isObjectLike(value) && _getTag_default(value) == mapTag$3;
1446
1802
  }
1447
1803
  //#endregion
1448
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackHas.js
1804
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isMap.js
1805
+ var nodeIsMap = nodeUtil && nodeUtil.isMap;
1449
1806
  /**
1450
- * Checks if a stack value for `key` exists.
1807
+ * Checks if `value` is classified as a `Map` object.
1451
1808
  *
1452
- * @private
1453
- * @name has
1454
- * @memberOf Stack
1455
- * @param {string} key The key of the entry to check.
1456
- * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
1809
+ * @static
1810
+ * @memberOf _
1811
+ * @since 4.3.0
1812
+ * @category Lang
1813
+ * @param {*} value The value to check.
1814
+ * @returns {boolean} Returns `true` if `value` is a map, else `false`.
1815
+ * @example
1816
+ *
1817
+ * _.isMap(new Map);
1818
+ * // => true
1819
+ *
1820
+ * _.isMap(new WeakMap);
1821
+ * // => false
1457
1822
  */
1458
- function stackHas(key) {
1459
- return this.__data__.has(key);
1460
- }
1823
+ var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;
1461
1824
  //#endregion
1462
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackSet.js
1463
- /** Used as the size to enable large array optimizations. */
1464
- var LARGE_ARRAY_SIZE = 200;
1825
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsSet.js
1826
+ /** `Object#toString` result references. */
1827
+ var setTag$3 = "[object Set]";
1465
1828
  /**
1466
- * Sets the stack `key` to `value`.
1829
+ * The base implementation of `_.isSet` without Node.js optimizations.
1467
1830
  *
1468
1831
  * @private
1469
- * @name set
1470
- * @memberOf Stack
1471
- * @param {string} key The key of the value to set.
1472
- * @param {*} value The value to set.
1473
- * @returns {Object} Returns the stack cache instance.
1832
+ * @param {*} value The value to check.
1833
+ * @returns {boolean} Returns `true` if `value` is a set, else `false`.
1474
1834
  */
1475
- function stackSet(key, value) {
1476
- var data = this.__data__;
1477
- if (data instanceof ListCache) {
1478
- var pairs = data.__data__;
1479
- if (!Map$1 || pairs.length < LARGE_ARRAY_SIZE - 1) {
1480
- pairs.push([key, value]);
1481
- this.size = ++data.size;
1482
- return this;
1483
- }
1484
- data = this.__data__ = new MapCache(pairs);
1485
- }
1486
- data.set(key, value);
1487
- this.size = data.size;
1488
- return this;
1835
+ function baseIsSet(value) {
1836
+ return isObjectLike(value) && _getTag_default(value) == setTag$3;
1489
1837
  }
1490
1838
  //#endregion
1491
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Stack.js
1839
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSet.js
1840
+ var nodeIsSet = nodeUtil && nodeUtil.isSet;
1492
1841
  /**
1493
- * Creates a stack cache object to store key-value pairs.
1842
+ * Checks if `value` is classified as a `Set` object.
1494
1843
  *
1495
- * @private
1496
- * @constructor
1497
- * @param {Array} [entries] The key-value pairs to cache.
1498
- */
1499
- function Stack(entries) {
1500
- var data = this.__data__ = new ListCache(entries);
1501
- this.size = data.size;
1502
- }
1503
- Stack.prototype.clear = stackClear;
1504
- Stack.prototype["delete"] = stackDelete;
1505
- Stack.prototype.get = stackGet;
1506
- Stack.prototype.has = stackHas;
1507
- Stack.prototype.set = stackSet;
1508
- //#endregion
1509
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssign.js
1510
- /**
1511
- * The base implementation of `_.assign` without support for multiple sources
1512
- * or `customizer` functions.
1513
- *
1514
- * @private
1515
- * @param {Object} object The destination object.
1516
- * @param {Object} source The source object.
1517
- * @returns {Object} Returns `object`.
1518
- */
1519
- function baseAssign(object, source) {
1520
- return object && copyObject(source, keys(source), object);
1521
- }
1522
- //#endregion
1523
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssignIn.js
1524
- /**
1525
- * The base implementation of `_.assignIn` without support for multiple sources
1526
- * or `customizer` functions.
1844
+ * @static
1845
+ * @memberOf _
1846
+ * @since 4.3.0
1847
+ * @category Lang
1848
+ * @param {*} value The value to check.
1849
+ * @returns {boolean} Returns `true` if `value` is a set, else `false`.
1850
+ * @example
1527
1851
  *
1528
- * @private
1529
- * @param {Object} object The destination object.
1530
- * @param {Object} source The source object.
1531
- * @returns {Object} Returns `object`.
1532
- */
1533
- function baseAssignIn(object, source) {
1534
- return object && copyObject(source, keysIn(source), object);
1535
- }
1536
- //#endregion
1537
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneBuffer.js
1538
- /** Detect free variable `exports`. */
1539
- var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports;
1540
- /** Detect free variable `module`. */
1541
- var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module;
1542
- /** Built-in value references. */
1543
- var Buffer$1 = freeModule && freeModule.exports === freeExports ? root.Buffer : void 0, allocUnsafe = Buffer$1 ? Buffer$1.allocUnsafe : void 0;
1544
- /**
1545
- * Creates a clone of `buffer`.
1852
+ * _.isSet(new Set);
1853
+ * // => true
1546
1854
  *
1547
- * @private
1548
- * @param {Buffer} buffer The buffer to clone.
1549
- * @param {boolean} [isDeep] Specify a deep clone.
1550
- * @returns {Buffer} Returns the cloned buffer.
1855
+ * _.isSet(new WeakSet);
1856
+ * // => false
1551
1857
  */
1552
- function cloneBuffer(buffer, isDeep) {
1553
- if (isDeep) return buffer.slice();
1554
- var length = buffer.length, result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
1555
- buffer.copy(result);
1556
- return result;
1557
- }
1858
+ var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;
1558
1859
  //#endregion
1559
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayFilter.js
1860
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseClone.js
1861
+ /** Used to compose bitmasks for cloning. */
1862
+ var CLONE_DEEP_FLAG$1 = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG$1 = 4;
1863
+ /** `Object#toString` result references. */
1864
+ var argsTag$1 = "[object Arguments]", arrayTag$1 = "[object Array]", boolTag$1 = "[object Boolean]", dateTag$1 = "[object Date]", errorTag$1 = "[object Error]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", mapTag$2 = "[object Map]", numberTag$1 = "[object Number]", objectTag$1 = "[object Object]", regexpTag$1 = "[object RegExp]", setTag$2 = "[object Set]", stringTag$1 = "[object String]", symbolTag$2 = "[object Symbol]", weakMapTag = "[object WeakMap]";
1865
+ var arrayBufferTag$1 = "[object ArrayBuffer]", dataViewTag$1 = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]";
1866
+ /** Used to identify `toStringTag` values supported by `_.clone`. */
1867
+ var cloneableTags = {};
1868
+ cloneableTags[argsTag$1] = cloneableTags[arrayTag$1] = cloneableTags[arrayBufferTag$1] = cloneableTags[dataViewTag$1] = cloneableTags[boolTag$1] = cloneableTags[dateTag$1] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag$2] = cloneableTags[numberTag$1] = cloneableTags[objectTag$1] = cloneableTags[regexpTag$1] = cloneableTags[setTag$2] = cloneableTags[stringTag$1] = cloneableTags[symbolTag$2] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
1869
+ cloneableTags[errorTag$1] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false;
1560
1870
  /**
1561
- * A specialized version of `_.filter` for arrays without support for
1562
- * iteratee shorthands.
1871
+ * The base implementation of `_.clone` and `_.cloneDeep` which tracks
1872
+ * traversed objects.
1563
1873
  *
1564
1874
  * @private
1565
- * @param {Array} [array] The array to iterate over.
1566
- * @param {Function} predicate The function invoked per iteration.
1567
- * @returns {Array} Returns the new filtered array.
1875
+ * @param {*} value The value to clone.
1876
+ * @param {boolean} bitmask The bitmask flags.
1877
+ * 1 - Deep clone
1878
+ * 2 - Flatten inherited properties
1879
+ * 4 - Clone symbols
1880
+ * @param {Function} [customizer] The function to customize cloning.
1881
+ * @param {string} [key] The key of `value`.
1882
+ * @param {Object} [object] The parent object of `value`.
1883
+ * @param {Object} [stack] Tracks traversed objects and their clone counterparts.
1884
+ * @returns {*} Returns the cloned value.
1568
1885
  */
1569
- function arrayFilter(array, predicate) {
1570
- var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = [];
1571
- while (++index < length) {
1572
- var value = array[index];
1573
- if (predicate(value, index, array)) result[resIndex++] = value;
1886
+ function baseClone(value, bitmask, customizer, key, object, stack) {
1887
+ var result, isDeep = bitmask & CLONE_DEEP_FLAG$1, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG$1;
1888
+ if (customizer) result = object ? customizer(value, key, object, stack) : customizer(value);
1889
+ if (result !== void 0) return result;
1890
+ if (!isObject(value)) return value;
1891
+ var isArr = isArray(value);
1892
+ if (isArr) {
1893
+ result = initCloneArray(value);
1894
+ if (!isDeep) return copyArray(value, result);
1895
+ } else {
1896
+ var tag = _getTag_default(value), isFunc = tag == funcTag || tag == genTag;
1897
+ if (isBuffer(value)) return cloneBuffer(value, isDeep);
1898
+ if (tag == objectTag$1 || tag == argsTag$1 || isFunc && !object) {
1899
+ result = isFlat || isFunc ? {} : initCloneObject(value);
1900
+ if (!isDeep) return isFlat ? copySymbolsIn(value, baseAssignIn(result, value)) : copySymbols(value, baseAssign(result, value));
1901
+ } else {
1902
+ if (!cloneableTags[tag]) return object ? value : {};
1903
+ result = initCloneByTag(value, tag, isDeep);
1904
+ }
1574
1905
  }
1906
+ stack || (stack = new Stack());
1907
+ var stacked = stack.get(value);
1908
+ if (stacked) return stacked;
1909
+ stack.set(value, result);
1910
+ if (isSet(value)) value.forEach(function(subValue) {
1911
+ result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));
1912
+ });
1913
+ else if (isMap(value)) value.forEach(function(subValue, key) {
1914
+ result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));
1915
+ });
1916
+ var props = isArr ? void 0 : (isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys)(value);
1917
+ arrayEach(props || value, function(subValue, key) {
1918
+ if (props) {
1919
+ key = subValue;
1920
+ subValue = value[key];
1921
+ }
1922
+ assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));
1923
+ });
1575
1924
  return result;
1576
1925
  }
1577
1926
  //#endregion
1578
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubArray.js
1927
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/cloneDeep.js
1928
+ /** Used to compose bitmasks for cloning. */
1929
+ var CLONE_DEEP_FLAG = 1, CLONE_SYMBOLS_FLAG = 4;
1579
1930
  /**
1580
- * This method returns a new empty array.
1931
+ * This method is like `_.clone` except that it recursively clones `value`.
1581
1932
  *
1582
1933
  * @static
1583
1934
  * @memberOf _
1584
- * @since 4.13.0
1585
- * @category Util
1586
- * @returns {Array} Returns the new empty array.
1935
+ * @since 1.0.0
1936
+ * @category Lang
1937
+ * @param {*} value The value to recursively clone.
1938
+ * @returns {*} Returns the deep cloned value.
1939
+ * @see _.clone
1587
1940
  * @example
1588
1941
  *
1589
- * var arrays = _.times(2, _.stubArray);
1590
- *
1591
- * console.log(arrays);
1592
- * // => [[], []]
1942
+ * var objects = [{ 'a': 1 }, { 'b': 2 }];
1593
1943
  *
1594
- * console.log(arrays[0] === arrays[1]);
1944
+ * var deep = _.cloneDeep(objects);
1945
+ * console.log(deep[0] === objects[0]);
1595
1946
  * // => false
1596
1947
  */
1597
- function stubArray() {
1598
- return [];
1948
+ function cloneDeep(value) {
1949
+ return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);
1599
1950
  }
1600
1951
  //#endregion
1601
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getSymbols.js
1602
- /** Built-in value references. */
1603
- var propertyIsEnumerable = Object.prototype.propertyIsEnumerable;
1604
- var nativeGetSymbols = Object.getOwnPropertySymbols;
1952
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/now.js
1605
1953
  /**
1606
- * Creates an array of the own enumerable symbols of `object`.
1954
+ * Gets the timestamp of the number of milliseconds that have elapsed since
1955
+ * the Unix epoch (1 January 1970 00:00:00 UTC).
1607
1956
  *
1608
- * @private
1609
- * @param {Object} object The object to query.
1610
- * @returns {Array} Returns the array of symbols.
1957
+ * @static
1958
+ * @memberOf _
1959
+ * @since 2.4.0
1960
+ * @category Date
1961
+ * @returns {number} Returns the timestamp.
1962
+ * @example
1963
+ *
1964
+ * _.defer(function(stamp) {
1965
+ * console.log(_.now() - stamp);
1966
+ * }, _.now());
1967
+ * // => Logs the number of milliseconds it took for the deferred invocation.
1611
1968
  */
1612
- var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
1613
- if (object == null) return [];
1614
- object = Object(object);
1615
- return arrayFilter(nativeGetSymbols(object), function(symbol) {
1616
- return propertyIsEnumerable.call(object, symbol);
1617
- });
1969
+ var now = function() {
1970
+ return root.Date.now();
1618
1971
  };
1619
1972
  //#endregion
1620
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copySymbols.js
1973
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_trimmedEndIndex.js
1974
+ /** Used to match a single whitespace character. */
1975
+ var reWhitespace = /\s/;
1621
1976
  /**
1622
- * Copies own symbols of `source` to `object`.
1977
+ * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace
1978
+ * character of `string`.
1623
1979
  *
1624
1980
  * @private
1625
- * @param {Object} source The object to copy symbols from.
1626
- * @param {Object} [object={}] The object to copy symbols to.
1627
- * @returns {Object} Returns `object`.
1981
+ * @param {string} string The string to inspect.
1982
+ * @returns {number} Returns the index of the last non-whitespace character.
1628
1983
  */
1629
- function copySymbols(source, object) {
1630
- return copyObject(source, getSymbols(source), object);
1984
+ function trimmedEndIndex(string) {
1985
+ var index = string.length;
1986
+ while (index-- && reWhitespace.test(string.charAt(index)));
1987
+ return index;
1631
1988
  }
1632
1989
  //#endregion
1633
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getSymbolsIn.js
1634
- /**
1635
- * Creates an array of the own and inherited enumerable symbols of `object`.
1636
- *
1637
- * @private
1638
- * @param {Object} object The object to query.
1639
- * @returns {Array} Returns the array of symbols.
1640
- */
1641
- var getSymbolsIn = !Object.getOwnPropertySymbols ? stubArray : function(object) {
1642
- var result = [];
1643
- while (object) {
1644
- arrayPush(result, getSymbols(object));
1645
- object = getPrototype(object);
1646
- }
1647
- return result;
1648
- };
1649
- //#endregion
1650
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copySymbolsIn.js
1990
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTrim.js
1991
+ /** Used to match leading whitespace. */
1992
+ var reTrimStart = /^\s+/;
1651
1993
  /**
1652
- * Copies own and inherited symbols of `source` to `object`.
1994
+ * The base implementation of `_.trim`.
1653
1995
  *
1654
1996
  * @private
1655
- * @param {Object} source The object to copy symbols from.
1656
- * @param {Object} [object={}] The object to copy symbols to.
1657
- * @returns {Object} Returns `object`.
1997
+ * @param {string} string The string to trim.
1998
+ * @returns {string} Returns the trimmed string.
1658
1999
  */
1659
- function copySymbolsIn(source, object) {
1660
- return copyObject(source, getSymbolsIn(source), object);
2000
+ function baseTrim(string) {
2001
+ return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string;
1661
2002
  }
1662
2003
  //#endregion
1663
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetAllKeys.js
2004
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSymbol.js
2005
+ /** `Object#toString` result references. */
2006
+ var symbolTag$1 = "[object Symbol]";
1664
2007
  /**
1665
- * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
1666
- * `keysFunc` and `symbolsFunc` to get the enumerable property names and
1667
- * symbols of `object`.
2008
+ * Checks if `value` is classified as a `Symbol` primitive or object.
1668
2009
  *
1669
- * @private
1670
- * @param {Object} object The object to query.
1671
- * @param {Function} keysFunc The function to get the keys of `object`.
1672
- * @param {Function} symbolsFunc The function to get the symbols of `object`.
1673
- * @returns {Array} Returns the array of property names and symbols.
1674
- */
1675
- function baseGetAllKeys(object, keysFunc, symbolsFunc) {
1676
- var result = keysFunc(object);
1677
- return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
1678
- }
1679
- //#endregion
1680
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeys.js
1681
- /**
1682
- * Creates an array of own enumerable property names and symbols of `object`.
1683
- *
1684
- * @private
1685
- * @param {Object} object The object to query.
1686
- * @returns {Array} Returns the array of property names and symbols.
1687
- */
1688
- function getAllKeys(object) {
1689
- return baseGetAllKeys(object, keys, getSymbols);
1690
- }
1691
- //#endregion
1692
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeysIn.js
1693
- /**
1694
- * Creates an array of own and inherited enumerable property names and
1695
- * symbols of `object`.
1696
- *
1697
- * @private
1698
- * @param {Object} object The object to query.
1699
- * @returns {Array} Returns the array of property names and symbols.
1700
- */
1701
- function getAllKeysIn(object) {
1702
- return baseGetAllKeys(object, keysIn, getSymbolsIn);
1703
- }
1704
- //#endregion
1705
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_DataView.js
1706
- var DataView = getNative(root, "DataView");
1707
- //#endregion
1708
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Promise.js
1709
- var Promise$1 = getNative(root, "Promise");
1710
- //#endregion
1711
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Set.js
1712
- var Set$1 = getNative(root, "Set");
1713
- //#endregion
1714
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getTag.js
1715
- /** `Object#toString` result references. */
1716
- var mapTag$5 = "[object Map]", objectTag$2 = "[object Object]", promiseTag = "[object Promise]", setTag$5 = "[object Set]", weakMapTag$1 = "[object WeakMap]";
1717
- var dataViewTag$3 = "[object DataView]";
1718
- /** Used to detect maps, sets, and weakmaps. */
1719
- var dataViewCtorString = toSource(DataView), mapCtorString = toSource(Map$1), promiseCtorString = toSource(Promise$1), setCtorString = toSource(Set$1), weakMapCtorString = toSource(WeakMap);
1720
- /**
1721
- * Gets the `toStringTag` of `value`.
1722
- *
1723
- * @private
1724
- * @param {*} value The value to query.
1725
- * @returns {string} Returns the `toStringTag`.
1726
- */
1727
- var getTag = baseGetTag;
1728
- if (DataView && getTag(new DataView(/* @__PURE__ */ new ArrayBuffer(1))) != dataViewTag$3 || Map$1 && getTag(new Map$1()) != mapTag$5 || Promise$1 && getTag(Promise$1.resolve()) != promiseTag || Set$1 && getTag(new Set$1()) != setTag$5 || WeakMap && getTag(new WeakMap()) != weakMapTag$1) getTag = function(value) {
1729
- var result = baseGetTag(value), Ctor = result == objectTag$2 ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : "";
1730
- if (ctorString) switch (ctorString) {
1731
- case dataViewCtorString: return dataViewTag$3;
1732
- case mapCtorString: return mapTag$5;
1733
- case promiseCtorString: return promiseTag;
1734
- case setCtorString: return setTag$5;
1735
- case weakMapCtorString: return weakMapTag$1;
1736
- }
1737
- return result;
1738
- };
1739
- var _getTag_default = getTag;
1740
- //#endregion
1741
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneArray.js
1742
- /** Used to check objects for own properties. */
1743
- var hasOwnProperty$3 = Object.prototype.hasOwnProperty;
1744
- /**
1745
- * Initializes an array clone.
1746
- *
1747
- * @private
1748
- * @param {Array} array The array to clone.
1749
- * @returns {Array} Returns the initialized clone.
1750
- */
1751
- function initCloneArray(array) {
1752
- var length = array.length, result = new array.constructor(length);
1753
- if (length && typeof array[0] == "string" && hasOwnProperty$3.call(array, "index")) {
1754
- result.index = array.index;
1755
- result.input = array.input;
1756
- }
1757
- return result;
1758
- }
1759
- //#endregion
1760
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Uint8Array.js
1761
- /** Built-in value references. */
1762
- var Uint8Array$1 = root.Uint8Array;
1763
- //#endregion
1764
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneArrayBuffer.js
1765
- /**
1766
- * Creates a clone of `arrayBuffer`.
2010
+ * @static
2011
+ * @memberOf _
2012
+ * @since 4.0.0
2013
+ * @category Lang
2014
+ * @param {*} value The value to check.
2015
+ * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
2016
+ * @example
1767
2017
  *
1768
- * @private
1769
- * @param {ArrayBuffer} arrayBuffer The array buffer to clone.
1770
- * @returns {ArrayBuffer} Returns the cloned array buffer.
1771
- */
1772
- function cloneArrayBuffer(arrayBuffer) {
1773
- var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
1774
- new Uint8Array$1(result).set(new Uint8Array$1(arrayBuffer));
1775
- return result;
1776
- }
1777
- //#endregion
1778
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneDataView.js
1779
- /**
1780
- * Creates a clone of `dataView`.
2018
+ * _.isSymbol(Symbol.iterator);
2019
+ * // => true
1781
2020
  *
1782
- * @private
1783
- * @param {Object} dataView The data view to clone.
1784
- * @param {boolean} [isDeep] Specify a deep clone.
1785
- * @returns {Object} Returns the cloned data view.
2021
+ * _.isSymbol('abc');
2022
+ * // => false
1786
2023
  */
1787
- function cloneDataView(dataView, isDeep) {
1788
- var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
1789
- return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
2024
+ function isSymbol(value) {
2025
+ return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag$1;
1790
2026
  }
1791
2027
  //#endregion
1792
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneRegExp.js
1793
- /** Used to match `RegExp` flags from their coerced string values. */
1794
- var reFlags = /\w*$/;
2028
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toNumber.js
2029
+ /** Used as references for various `Number` constants. */
2030
+ var NAN = NaN;
2031
+ /** Used to detect bad signed hexadecimal string values. */
2032
+ var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
2033
+ /** Used to detect binary string values. */
2034
+ var reIsBinary = /^0b[01]+$/i;
2035
+ /** Used to detect octal string values. */
2036
+ var reIsOctal = /^0o[0-7]+$/i;
2037
+ /** Built-in method references without a dependency on `root`. */
2038
+ var freeParseInt = parseInt;
1795
2039
  /**
1796
- * Creates a clone of `regexp`.
2040
+ * Converts `value` to a number.
1797
2041
  *
1798
- * @private
1799
- * @param {Object} regexp The regexp to clone.
1800
- * @returns {Object} Returns the cloned regexp.
1801
- */
1802
- function cloneRegExp(regexp) {
1803
- var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
1804
- result.lastIndex = regexp.lastIndex;
1805
- return result;
1806
- }
1807
- //#endregion
1808
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneSymbol.js
1809
- /** Used to convert symbols to primitives and strings. */
1810
- var symbolProto$1 = Symbol$1 ? Symbol$1.prototype : void 0, symbolValueOf$1 = symbolProto$1 ? symbolProto$1.valueOf : void 0;
1811
- /**
1812
- * Creates a clone of the `symbol` object.
2042
+ * @static
2043
+ * @memberOf _
2044
+ * @since 4.0.0
2045
+ * @category Lang
2046
+ * @param {*} value The value to process.
2047
+ * @returns {number} Returns the number.
2048
+ * @example
1813
2049
  *
1814
- * @private
1815
- * @param {Object} symbol The symbol object to clone.
1816
- * @returns {Object} Returns the cloned symbol object.
1817
- */
1818
- function cloneSymbol(symbol) {
1819
- return symbolValueOf$1 ? Object(symbolValueOf$1.call(symbol)) : {};
1820
- }
1821
- //#endregion
1822
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneTypedArray.js
1823
- /**
1824
- * Creates a clone of `typedArray`.
2050
+ * _.toNumber(3.2);
2051
+ * // => 3.2
1825
2052
  *
1826
- * @private
1827
- * @param {Object} typedArray The typed array to clone.
1828
- * @param {boolean} [isDeep] Specify a deep clone.
1829
- * @returns {Object} Returns the cloned typed array.
1830
- */
1831
- function cloneTypedArray(typedArray, isDeep) {
1832
- var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
1833
- return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
1834
- }
1835
- //#endregion
1836
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneByTag.js
1837
- /** `Object#toString` result references. */
1838
- var boolTag$2 = "[object Boolean]", dateTag$2 = "[object Date]", mapTag$4 = "[object Map]", numberTag$2 = "[object Number]", regexpTag$2 = "[object RegExp]", setTag$4 = "[object Set]", stringTag$2 = "[object String]", symbolTag$2 = "[object Symbol]";
1839
- var arrayBufferTag$2 = "[object ArrayBuffer]", dataViewTag$2 = "[object DataView]", float32Tag$1 = "[object Float32Array]", float64Tag$1 = "[object Float64Array]", int8Tag$1 = "[object Int8Array]", int16Tag$1 = "[object Int16Array]", int32Tag$1 = "[object Int32Array]", uint8Tag$1 = "[object Uint8Array]", uint8ClampedTag$1 = "[object Uint8ClampedArray]", uint16Tag$1 = "[object Uint16Array]", uint32Tag$1 = "[object Uint32Array]";
1840
- /**
1841
- * Initializes an object clone based on its `toStringTag`.
2053
+ * _.toNumber(Number.MIN_VALUE);
2054
+ * // => 5e-324
1842
2055
  *
1843
- * **Note:** This function only supports cloning values with tags of
1844
- * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.
2056
+ * _.toNumber(Infinity);
2057
+ * // => Infinity
1845
2058
  *
1846
- * @private
1847
- * @param {Object} object The object to clone.
1848
- * @param {string} tag The `toStringTag` of the object to clone.
1849
- * @param {boolean} [isDeep] Specify a deep clone.
1850
- * @returns {Object} Returns the initialized clone.
2059
+ * _.toNumber('3.2');
2060
+ * // => 3.2
1851
2061
  */
1852
- function initCloneByTag(object, tag, isDeep) {
1853
- var Ctor = object.constructor;
1854
- switch (tag) {
1855
- case arrayBufferTag$2: return cloneArrayBuffer(object);
1856
- case boolTag$2:
1857
- case dateTag$2: return new Ctor(+object);
1858
- case dataViewTag$2: return cloneDataView(object, isDeep);
1859
- case float32Tag$1:
1860
- case float64Tag$1:
1861
- case int8Tag$1:
1862
- case int16Tag$1:
1863
- case int32Tag$1:
1864
- case uint8Tag$1:
1865
- case uint8ClampedTag$1:
1866
- case uint16Tag$1:
1867
- case uint32Tag$1: return cloneTypedArray(object, isDeep);
1868
- case mapTag$4: return new Ctor();
1869
- case numberTag$2:
1870
- case stringTag$2: return new Ctor(object);
1871
- case regexpTag$2: return cloneRegExp(object);
1872
- case setTag$4: return new Ctor();
1873
- case symbolTag$2: return cloneSymbol(object);
2062
+ function toNumber(value) {
2063
+ if (typeof value == "number") return value;
2064
+ if (isSymbol(value)) return NAN;
2065
+ if (isObject(value)) {
2066
+ var other = typeof value.valueOf == "function" ? value.valueOf() : value;
2067
+ value = isObject(other) ? other + "" : other;
1874
2068
  }
2069
+ if (typeof value != "string") return value === 0 ? value : +value;
2070
+ value = baseTrim(value);
2071
+ var isBinary = reIsBinary.test(value);
2072
+ return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
1875
2073
  }
1876
2074
  //#endregion
1877
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneObject.js
1878
- /**
1879
- * Initializes an object clone.
1880
- *
1881
- * @private
1882
- * @param {Object} object The object to clone.
1883
- * @returns {Object} Returns the initialized clone.
1884
- */
1885
- function initCloneObject(object) {
1886
- return typeof object.constructor == "function" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};
1887
- }
1888
- //#endregion
1889
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsMap.js
1890
- /** `Object#toString` result references. */
1891
- var mapTag$3 = "[object Map]";
1892
- /**
1893
- * The base implementation of `_.isMap` without Node.js optimizations.
1894
- *
1895
- * @private
1896
- * @param {*} value The value to check.
1897
- * @returns {boolean} Returns `true` if `value` is a map, else `false`.
1898
- */
1899
- function baseIsMap(value) {
1900
- return isObjectLike(value) && _getTag_default(value) == mapTag$3;
1901
- }
1902
- //#endregion
1903
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isMap.js
1904
- var nodeIsMap = nodeUtil && nodeUtil.isMap;
2075
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/debounce.js
2076
+ /** Error message constants. */
2077
+ var FUNC_ERROR_TEXT = "Expected a function";
2078
+ var nativeMax = Math.max, nativeMin = Math.min;
1905
2079
  /**
1906
- * Checks if `value` is classified as a `Map` object.
1907
- *
1908
- * @static
1909
- * @memberOf _
1910
- * @since 4.3.0
1911
- * @category Lang
1912
- * @param {*} value The value to check.
1913
- * @returns {boolean} Returns `true` if `value` is a map, else `false`.
1914
- * @example
2080
+ * Creates a debounced function that delays invoking `func` until after `wait`
2081
+ * milliseconds have elapsed since the last time the debounced function was
2082
+ * invoked. The debounced function comes with a `cancel` method to cancel
2083
+ * delayed `func` invocations and a `flush` method to immediately invoke them.
2084
+ * Provide `options` to indicate whether `func` should be invoked on the
2085
+ * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
2086
+ * with the last arguments provided to the debounced function. Subsequent
2087
+ * calls to the debounced function return the result of the last `func`
2088
+ * invocation.
1915
2089
  *
1916
- * _.isMap(new Map);
1917
- * // => true
2090
+ * **Note:** If `leading` and `trailing` options are `true`, `func` is
2091
+ * invoked on the trailing edge of the timeout only if the debounced function
2092
+ * is invoked more than once during the `wait` timeout.
1918
2093
  *
1919
- * _.isMap(new WeakMap);
1920
- * // => false
1921
- */
1922
- var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;
1923
- //#endregion
1924
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsSet.js
1925
- /** `Object#toString` result references. */
1926
- var setTag$3 = "[object Set]";
1927
- /**
1928
- * The base implementation of `_.isSet` without Node.js optimizations.
2094
+ * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
2095
+ * until to the next tick, similar to `setTimeout` with a timeout of `0`.
1929
2096
  *
1930
- * @private
1931
- * @param {*} value The value to check.
1932
- * @returns {boolean} Returns `true` if `value` is a set, else `false`.
1933
- */
1934
- function baseIsSet(value) {
1935
- return isObjectLike(value) && _getTag_default(value) == setTag$3;
1936
- }
1937
- //#endregion
1938
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSet.js
1939
- var nodeIsSet = nodeUtil && nodeUtil.isSet;
1940
- /**
1941
- * Checks if `value` is classified as a `Set` object.
2097
+ * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
2098
+ * for details over the differences between `_.debounce` and `_.throttle`.
1942
2099
  *
1943
2100
  * @static
1944
2101
  * @memberOf _
1945
- * @since 4.3.0
1946
- * @category Lang
1947
- * @param {*} value The value to check.
1948
- * @returns {boolean} Returns `true` if `value` is a set, else `false`.
2102
+ * @since 0.1.0
2103
+ * @category Function
2104
+ * @param {Function} func The function to debounce.
2105
+ * @param {number} [wait=0] The number of milliseconds to delay.
2106
+ * @param {Object} [options={}] The options object.
2107
+ * @param {boolean} [options.leading=false]
2108
+ * Specify invoking on the leading edge of the timeout.
2109
+ * @param {number} [options.maxWait]
2110
+ * The maximum time `func` is allowed to be delayed before it's invoked.
2111
+ * @param {boolean} [options.trailing=true]
2112
+ * Specify invoking on the trailing edge of the timeout.
2113
+ * @returns {Function} Returns the new debounced function.
1949
2114
  * @example
1950
2115
  *
1951
- * _.isSet(new Set);
1952
- * // => true
2116
+ * // Avoid costly calculations while the window size is in flux.
2117
+ * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
1953
2118
  *
1954
- * _.isSet(new WeakSet);
1955
- * // => false
1956
- */
1957
- var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;
1958
- //#endregion
1959
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseClone.js
1960
- /** Used to compose bitmasks for cloning. */
1961
- var CLONE_DEEP_FLAG$1 = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG$1 = 4;
1962
- /** `Object#toString` result references. */
1963
- var argsTag$1 = "[object Arguments]", arrayTag$1 = "[object Array]", boolTag$1 = "[object Boolean]", dateTag$1 = "[object Date]", errorTag$1 = "[object Error]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", mapTag$2 = "[object Map]", numberTag$1 = "[object Number]", objectTag$1 = "[object Object]", regexpTag$1 = "[object RegExp]", setTag$2 = "[object Set]", stringTag$1 = "[object String]", symbolTag$1 = "[object Symbol]", weakMapTag = "[object WeakMap]";
1964
- var arrayBufferTag$1 = "[object ArrayBuffer]", dataViewTag$1 = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]";
1965
- /** Used to identify `toStringTag` values supported by `_.clone`. */
1966
- var cloneableTags = {};
1967
- cloneableTags[argsTag$1] = cloneableTags[arrayTag$1] = cloneableTags[arrayBufferTag$1] = cloneableTags[dataViewTag$1] = cloneableTags[boolTag$1] = cloneableTags[dateTag$1] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag$2] = cloneableTags[numberTag$1] = cloneableTags[objectTag$1] = cloneableTags[regexpTag$1] = cloneableTags[setTag$2] = cloneableTags[stringTag$1] = cloneableTags[symbolTag$1] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
1968
- cloneableTags[errorTag$1] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false;
1969
- /**
1970
- * The base implementation of `_.clone` and `_.cloneDeep` which tracks
1971
- * traversed objects.
2119
+ * // Invoke `sendMail` when clicked, debouncing subsequent calls.
2120
+ * jQuery(element).on('click', _.debounce(sendMail, 300, {
2121
+ * 'leading': true,
2122
+ * 'trailing': false
2123
+ * }));
1972
2124
  *
1973
- * @private
1974
- * @param {*} value The value to clone.
1975
- * @param {boolean} bitmask The bitmask flags.
1976
- * 1 - Deep clone
1977
- * 2 - Flatten inherited properties
1978
- * 4 - Clone symbols
1979
- * @param {Function} [customizer] The function to customize cloning.
1980
- * @param {string} [key] The key of `value`.
1981
- * @param {Object} [object] The parent object of `value`.
1982
- * @param {Object} [stack] Tracks traversed objects and their clone counterparts.
1983
- * @returns {*} Returns the cloned value.
2125
+ * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
2126
+ * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
2127
+ * var source = new EventSource('/stream');
2128
+ * jQuery(source).on('message', debounced);
2129
+ *
2130
+ * // Cancel the trailing debounced invocation.
2131
+ * jQuery(window).on('popstate', debounced.cancel);
1984
2132
  */
1985
- function baseClone(value, bitmask, customizer, key, object, stack) {
1986
- var result, isDeep = bitmask & CLONE_DEEP_FLAG$1, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG$1;
1987
- if (customizer) result = object ? customizer(value, key, object, stack) : customizer(value);
1988
- if (result !== void 0) return result;
1989
- if (!isObject(value)) return value;
1990
- var isArr = isArray(value);
1991
- if (isArr) {
1992
- result = initCloneArray(value);
1993
- if (!isDeep) return copyArray(value, result);
1994
- } else {
1995
- var tag = _getTag_default(value), isFunc = tag == funcTag || tag == genTag;
1996
- if (isBuffer(value)) return cloneBuffer(value, isDeep);
1997
- if (tag == objectTag$1 || tag == argsTag$1 || isFunc && !object) {
1998
- result = isFlat || isFunc ? {} : initCloneObject(value);
1999
- if (!isDeep) return isFlat ? copySymbolsIn(value, baseAssignIn(result, value)) : copySymbols(value, baseAssign(result, value));
2000
- } else {
2001
- if (!cloneableTags[tag]) return object ? value : {};
2002
- result = initCloneByTag(value, tag, isDeep);
2003
- }
2133
+ function debounce(func, wait, options) {
2134
+ var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;
2135
+ if (typeof func != "function") throw new TypeError(FUNC_ERROR_TEXT);
2136
+ wait = toNumber(wait) || 0;
2137
+ if (isObject(options)) {
2138
+ leading = !!options.leading;
2139
+ maxing = "maxWait" in options;
2140
+ maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
2141
+ trailing = "trailing" in options ? !!options.trailing : trailing;
2004
2142
  }
2005
- stack || (stack = new Stack());
2006
- var stacked = stack.get(value);
2007
- if (stacked) return stacked;
2008
- stack.set(value, result);
2009
- if (isSet(value)) value.forEach(function(subValue) {
2010
- result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));
2011
- });
2012
- else if (isMap(value)) value.forEach(function(subValue, key) {
2013
- result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));
2014
- });
2015
- var props = isArr ? void 0 : (isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys)(value);
2016
- arrayEach(props || value, function(subValue, key) {
2017
- if (props) {
2018
- key = subValue;
2019
- subValue = value[key];
2143
+ function invokeFunc(time) {
2144
+ var args = lastArgs, thisArg = lastThis;
2145
+ lastArgs = lastThis = void 0;
2146
+ lastInvokeTime = time;
2147
+ result = func.apply(thisArg, args);
2148
+ return result;
2149
+ }
2150
+ function leadingEdge(time) {
2151
+ lastInvokeTime = time;
2152
+ timerId = setTimeout(timerExpired, wait);
2153
+ return leading ? invokeFunc(time) : result;
2154
+ }
2155
+ function remainingWait(time) {
2156
+ var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;
2157
+ return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;
2158
+ }
2159
+ function shouldInvoke(time) {
2160
+ var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;
2161
+ return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
2162
+ }
2163
+ function timerExpired() {
2164
+ var time = now();
2165
+ if (shouldInvoke(time)) return trailingEdge(time);
2166
+ timerId = setTimeout(timerExpired, remainingWait(time));
2167
+ }
2168
+ function trailingEdge(time) {
2169
+ timerId = void 0;
2170
+ if (trailing && lastArgs) return invokeFunc(time);
2171
+ lastArgs = lastThis = void 0;
2172
+ return result;
2173
+ }
2174
+ function cancel() {
2175
+ if (timerId !== void 0) clearTimeout(timerId);
2176
+ lastInvokeTime = 0;
2177
+ lastArgs = lastCallTime = lastThis = timerId = void 0;
2178
+ }
2179
+ function flush() {
2180
+ return timerId === void 0 ? result : trailingEdge(now());
2181
+ }
2182
+ function debounced() {
2183
+ var time = now(), isInvoking = shouldInvoke(time);
2184
+ lastArgs = arguments;
2185
+ lastThis = this;
2186
+ lastCallTime = time;
2187
+ if (isInvoking) {
2188
+ if (timerId === void 0) return leadingEdge(lastCallTime);
2189
+ if (maxing) {
2190
+ clearTimeout(timerId);
2191
+ timerId = setTimeout(timerExpired, wait);
2192
+ return invokeFunc(lastCallTime);
2193
+ }
2020
2194
  }
2021
- assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));
2022
- });
2023
- return result;
2195
+ if (timerId === void 0) timerId = setTimeout(timerExpired, wait);
2196
+ return result;
2197
+ }
2198
+ debounced.cancel = cancel;
2199
+ debounced.flush = flush;
2200
+ return debounced;
2024
2201
  }
2025
2202
  //#endregion
2026
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/cloneDeep.js
2027
- /** Used to compose bitmasks for cloning. */
2028
- var CLONE_DEEP_FLAG = 1, CLONE_SYMBOLS_FLAG = 4;
2203
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isEmpty.js
2204
+ /** `Object#toString` result references. */
2205
+ var mapTag$1 = "[object Map]", setTag$1 = "[object Set]";
2206
+ /** Used to check objects for own properties. */
2207
+ var hasOwnProperty$2 = Object.prototype.hasOwnProperty;
2029
2208
  /**
2030
- * This method is like `_.clone` except that it recursively clones `value`.
2209
+ * Checks if `value` is an empty object, collection, map, or set.
2210
+ *
2211
+ * Objects are considered empty if they have no own enumerable string keyed
2212
+ * properties.
2213
+ *
2214
+ * Array-like values such as `arguments` objects, arrays, buffers, strings, or
2215
+ * jQuery-like collections are considered empty if they have a `length` of `0`.
2216
+ * Similarly, maps and sets are considered empty if they have a `size` of `0`.
2031
2217
  *
2032
2218
  * @static
2033
2219
  * @memberOf _
2034
- * @since 1.0.0
2220
+ * @since 0.1.0
2035
2221
  * @category Lang
2036
- * @param {*} value The value to recursively clone.
2037
- * @returns {*} Returns the deep cloned value.
2038
- * @see _.clone
2222
+ * @param {*} value The value to check.
2223
+ * @returns {boolean} Returns `true` if `value` is empty, else `false`.
2039
2224
  * @example
2040
2225
  *
2041
- * var objects = [{ 'a': 1 }, { 'b': 2 }];
2226
+ * _.isEmpty(null);
2227
+ * // => true
2042
2228
  *
2043
- * var deep = _.cloneDeep(objects);
2044
- * console.log(deep[0] === objects[0]);
2229
+ * _.isEmpty(true);
2230
+ * // => true
2231
+ *
2232
+ * _.isEmpty(1);
2233
+ * // => true
2234
+ *
2235
+ * _.isEmpty([1, 2, 3]);
2236
+ * // => false
2237
+ *
2238
+ * _.isEmpty({ 'a': 1 });
2045
2239
  * // => false
2046
2240
  */
2047
- function cloneDeep(value) {
2048
- return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);
2241
+ function isEmpty(value) {
2242
+ if (value == null) return true;
2243
+ if (isArrayLike(value) && (isArray(value) || typeof value == "string" || typeof value.splice == "function" || isBuffer(value) || isTypedArray(value) || isArguments(value))) return !value.length;
2244
+ var tag = _getTag_default(value);
2245
+ if (tag == mapTag$1 || tag == setTag$1) return !value.size;
2246
+ if (isPrototype(value)) return !baseKeys(value).length;
2247
+ for (var key in value) if (hasOwnProperty$2.call(value, key)) return false;
2248
+ return true;
2049
2249
  }
2050
2250
  //#endregion
2051
2251
  //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheAdd.js
@@ -2213,7 +2413,7 @@
2213
2413
  /** Used to compose bitmasks for value comparisons. */
2214
2414
  var COMPARE_PARTIAL_FLAG$2 = 1, COMPARE_UNORDERED_FLAG = 2;
2215
2415
  /** `Object#toString` result references. */
2216
- var boolTag = "[object Boolean]", dateTag = "[object Date]", errorTag = "[object Error]", mapTag$1 = "[object Map]", numberTag = "[object Number]", regexpTag = "[object RegExp]", setTag$1 = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]";
2416
+ var boolTag = "[object Boolean]", dateTag = "[object Date]", errorTag = "[object Error]", mapTag = "[object Map]", numberTag = "[object Number]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]";
2217
2417
  var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]";
2218
2418
  /** Used to convert symbols to primitives and strings. */
2219
2419
  var symbolProto = Symbol$1 ? Symbol$1.prototype : void 0, symbolValueOf = symbolProto ? symbolProto.valueOf : void 0;
@@ -2249,8 +2449,8 @@
2249
2449
  case errorTag: return object.name == other.name && object.message == other.message;
2250
2450
  case regexpTag:
2251
2451
  case stringTag: return object == other + "";
2252
- case mapTag$1: var convert = mapToArray;
2253
- case setTag$1:
2452
+ case mapTag: var convert = mapToArray;
2453
+ case setTag:
2254
2454
  var isPartial = bitmask & COMPARE_PARTIAL_FLAG$2;
2255
2455
  convert || (convert = setToArray);
2256
2456
  if (object.size != other.size && !isPartial) return false;
@@ -2270,7 +2470,7 @@
2270
2470
  /** Used to compose bitmasks for value comparisons. */
2271
2471
  var COMPARE_PARTIAL_FLAG$1 = 1;
2272
2472
  /** Used to check objects for own properties. */
2273
- var hasOwnProperty$2 = Object.prototype.hasOwnProperty;
2473
+ var hasOwnProperty$1 = Object.prototype.hasOwnProperty;
2274
2474
  /**
2275
2475
  * A specialized version of `baseIsEqualDeep` for objects with support for
2276
2476
  * partial deep comparisons.
@@ -2287,301 +2487,104 @@
2287
2487
  function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
2288
2488
  var isPartial = bitmask & COMPARE_PARTIAL_FLAG$1, objProps = getAllKeys(object), objLength = objProps.length;
2289
2489
  if (objLength != getAllKeys(other).length && !isPartial) return false;
2290
- var index = objLength;
2291
- while (index--) {
2292
- var key = objProps[index];
2293
- if (!(isPartial ? key in other : hasOwnProperty$2.call(other, key))) return false;
2294
- }
2295
- var objStacked = stack.get(object);
2296
- var othStacked = stack.get(other);
2297
- if (objStacked && othStacked) return objStacked == other && othStacked == object;
2298
- var result = true;
2299
- stack.set(object, other);
2300
- stack.set(other, object);
2301
- var skipCtor = isPartial;
2302
- while (++index < objLength) {
2303
- key = objProps[index];
2304
- var objValue = object[key], othValue = other[key];
2305
- if (customizer) var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);
2306
- if (!(compared === void 0 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {
2307
- result = false;
2308
- break;
2309
- }
2310
- skipCtor || (skipCtor = key == "constructor");
2311
- }
2312
- if (result && !skipCtor) {
2313
- var objCtor = object.constructor, othCtor = other.constructor;
2314
- if (objCtor != othCtor && "constructor" in object && "constructor" in other && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) result = false;
2315
- }
2316
- stack["delete"](object);
2317
- stack["delete"](other);
2318
- return result;
2319
- }
2320
- //#endregion
2321
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqualDeep.js
2322
- /** Used to compose bitmasks for value comparisons. */
2323
- var COMPARE_PARTIAL_FLAG = 1;
2324
- /** `Object#toString` result references. */
2325
- var argsTag = "[object Arguments]", arrayTag = "[object Array]", objectTag = "[object Object]";
2326
- /** Used to check objects for own properties. */
2327
- var hasOwnProperty$1 = Object.prototype.hasOwnProperty;
2328
- /**
2329
- * A specialized version of `baseIsEqual` for arrays and objects which performs
2330
- * deep comparisons and tracks traversed objects enabling objects with circular
2331
- * references to be compared.
2332
- *
2333
- * @private
2334
- * @param {Object} object The object to compare.
2335
- * @param {Object} other The other object to compare.
2336
- * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
2337
- * @param {Function} customizer The function to customize comparisons.
2338
- * @param {Function} equalFunc The function to determine equivalents of values.
2339
- * @param {Object} [stack] Tracks traversed `object` and `other` objects.
2340
- * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
2341
- */
2342
- function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
2343
- var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : _getTag_default(object), othTag = othIsArr ? arrayTag : _getTag_default(other);
2344
- objTag = objTag == argsTag ? objectTag : objTag;
2345
- othTag = othTag == argsTag ? objectTag : othTag;
2346
- var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag;
2347
- if (isSameTag && isBuffer(object)) {
2348
- if (!isBuffer(other)) return false;
2349
- objIsArr = true;
2350
- objIsObj = false;
2351
- }
2352
- if (isSameTag && !objIsObj) {
2353
- stack || (stack = new Stack());
2354
- return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
2355
- }
2356
- if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
2357
- var objIsWrapped = objIsObj && hasOwnProperty$1.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty$1.call(other, "__wrapped__");
2358
- if (objIsWrapped || othIsWrapped) {
2359
- var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other;
2360
- stack || (stack = new Stack());
2361
- return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
2362
- }
2363
- }
2364
- if (!isSameTag) return false;
2365
- stack || (stack = new Stack());
2366
- return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
2367
- }
2368
- //#endregion
2369
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqual.js
2370
- /**
2371
- * The base implementation of `_.isEqual` which supports partial comparisons
2372
- * and tracks traversed objects.
2373
- *
2374
- * @private
2375
- * @param {*} value The value to compare.
2376
- * @param {*} other The other value to compare.
2377
- * @param {boolean} bitmask The bitmask flags.
2378
- * 1 - Unordered comparison
2379
- * 2 - Partial comparison
2380
- * @param {Function} [customizer] The function to customize comparisons.
2381
- * @param {Object} [stack] Tracks traversed `value` and `other` objects.
2382
- * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
2383
- */
2384
- function baseIsEqual(value, other, bitmask, customizer, stack) {
2385
- if (value === other) return true;
2386
- if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) return value !== value && other !== other;
2387
- return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
2388
- }
2389
- //#endregion
2390
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/now.js
2391
- /**
2392
- * Gets the timestamp of the number of milliseconds that have elapsed since
2393
- * the Unix epoch (1 January 1970 00:00:00 UTC).
2394
- *
2395
- * @static
2396
- * @memberOf _
2397
- * @since 2.4.0
2398
- * @category Date
2399
- * @returns {number} Returns the timestamp.
2400
- * @example
2401
- *
2402
- * _.defer(function(stamp) {
2403
- * console.log(_.now() - stamp);
2404
- * }, _.now());
2405
- * // => Logs the number of milliseconds it took for the deferred invocation.
2406
- */
2407
- var now = function() {
2408
- return root.Date.now();
2409
- };
2410
- //#endregion
2411
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/debounce.js
2412
- /** Error message constants. */
2413
- var FUNC_ERROR_TEXT = "Expected a function";
2414
- var nativeMax = Math.max, nativeMin = Math.min;
2415
- /**
2416
- * Creates a debounced function that delays invoking `func` until after `wait`
2417
- * milliseconds have elapsed since the last time the debounced function was
2418
- * invoked. The debounced function comes with a `cancel` method to cancel
2419
- * delayed `func` invocations and a `flush` method to immediately invoke them.
2420
- * Provide `options` to indicate whether `func` should be invoked on the
2421
- * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
2422
- * with the last arguments provided to the debounced function. Subsequent
2423
- * calls to the debounced function return the result of the last `func`
2424
- * invocation.
2425
- *
2426
- * **Note:** If `leading` and `trailing` options are `true`, `func` is
2427
- * invoked on the trailing edge of the timeout only if the debounced function
2428
- * is invoked more than once during the `wait` timeout.
2429
- *
2430
- * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
2431
- * until to the next tick, similar to `setTimeout` with a timeout of `0`.
2432
- *
2433
- * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
2434
- * for details over the differences between `_.debounce` and `_.throttle`.
2435
- *
2436
- * @static
2437
- * @memberOf _
2438
- * @since 0.1.0
2439
- * @category Function
2440
- * @param {Function} func The function to debounce.
2441
- * @param {number} [wait=0] The number of milliseconds to delay.
2442
- * @param {Object} [options={}] The options object.
2443
- * @param {boolean} [options.leading=false]
2444
- * Specify invoking on the leading edge of the timeout.
2445
- * @param {number} [options.maxWait]
2446
- * The maximum time `func` is allowed to be delayed before it's invoked.
2447
- * @param {boolean} [options.trailing=true]
2448
- * Specify invoking on the trailing edge of the timeout.
2449
- * @returns {Function} Returns the new debounced function.
2450
- * @example
2451
- *
2452
- * // Avoid costly calculations while the window size is in flux.
2453
- * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
2454
- *
2455
- * // Invoke `sendMail` when clicked, debouncing subsequent calls.
2456
- * jQuery(element).on('click', _.debounce(sendMail, 300, {
2457
- * 'leading': true,
2458
- * 'trailing': false
2459
- * }));
2460
- *
2461
- * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
2462
- * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
2463
- * var source = new EventSource('/stream');
2464
- * jQuery(source).on('message', debounced);
2465
- *
2466
- * // Cancel the trailing debounced invocation.
2467
- * jQuery(window).on('popstate', debounced.cancel);
2468
- */
2469
- function debounce(func, wait, options) {
2470
- var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;
2471
- if (typeof func != "function") throw new TypeError(FUNC_ERROR_TEXT);
2472
- wait = toNumber(wait) || 0;
2473
- if (isObject(options)) {
2474
- leading = !!options.leading;
2475
- maxing = "maxWait" in options;
2476
- maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
2477
- trailing = "trailing" in options ? !!options.trailing : trailing;
2478
- }
2479
- function invokeFunc(time) {
2480
- var args = lastArgs, thisArg = lastThis;
2481
- lastArgs = lastThis = void 0;
2482
- lastInvokeTime = time;
2483
- result = func.apply(thisArg, args);
2484
- return result;
2485
- }
2486
- function leadingEdge(time) {
2487
- lastInvokeTime = time;
2488
- timerId = setTimeout(timerExpired, wait);
2489
- return leading ? invokeFunc(time) : result;
2490
- }
2491
- function remainingWait(time) {
2492
- var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;
2493
- return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;
2494
- }
2495
- function shouldInvoke(time) {
2496
- var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;
2497
- return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
2498
- }
2499
- function timerExpired() {
2500
- var time = now();
2501
- if (shouldInvoke(time)) return trailingEdge(time);
2502
- timerId = setTimeout(timerExpired, remainingWait(time));
2503
- }
2504
- function trailingEdge(time) {
2505
- timerId = void 0;
2506
- if (trailing && lastArgs) return invokeFunc(time);
2507
- lastArgs = lastThis = void 0;
2508
- return result;
2509
- }
2510
- function cancel() {
2511
- if (timerId !== void 0) clearTimeout(timerId);
2512
- lastInvokeTime = 0;
2513
- lastArgs = lastCallTime = lastThis = timerId = void 0;
2514
- }
2515
- function flush() {
2516
- return timerId === void 0 ? result : trailingEdge(now());
2490
+ var index = objLength;
2491
+ while (index--) {
2492
+ var key = objProps[index];
2493
+ if (!(isPartial ? key in other : hasOwnProperty$1.call(other, key))) return false;
2517
2494
  }
2518
- function debounced() {
2519
- var time = now(), isInvoking = shouldInvoke(time);
2520
- lastArgs = arguments;
2521
- lastThis = this;
2522
- lastCallTime = time;
2523
- if (isInvoking) {
2524
- if (timerId === void 0) return leadingEdge(lastCallTime);
2525
- if (maxing) {
2526
- clearTimeout(timerId);
2527
- timerId = setTimeout(timerExpired, wait);
2528
- return invokeFunc(lastCallTime);
2529
- }
2495
+ var objStacked = stack.get(object);
2496
+ var othStacked = stack.get(other);
2497
+ if (objStacked && othStacked) return objStacked == other && othStacked == object;
2498
+ var result = true;
2499
+ stack.set(object, other);
2500
+ stack.set(other, object);
2501
+ var skipCtor = isPartial;
2502
+ while (++index < objLength) {
2503
+ key = objProps[index];
2504
+ var objValue = object[key], othValue = other[key];
2505
+ if (customizer) var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);
2506
+ if (!(compared === void 0 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {
2507
+ result = false;
2508
+ break;
2530
2509
  }
2531
- if (timerId === void 0) timerId = setTimeout(timerExpired, wait);
2532
- return result;
2510
+ skipCtor || (skipCtor = key == "constructor");
2533
2511
  }
2534
- debounced.cancel = cancel;
2535
- debounced.flush = flush;
2536
- return debounced;
2512
+ if (result && !skipCtor) {
2513
+ var objCtor = object.constructor, othCtor = other.constructor;
2514
+ if (objCtor != othCtor && "constructor" in object && "constructor" in other && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) result = false;
2515
+ }
2516
+ stack["delete"](object);
2517
+ stack["delete"](other);
2518
+ return result;
2537
2519
  }
2538
2520
  //#endregion
2539
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isEmpty.js
2521
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqualDeep.js
2522
+ /** Used to compose bitmasks for value comparisons. */
2523
+ var COMPARE_PARTIAL_FLAG = 1;
2540
2524
  /** `Object#toString` result references. */
2541
- var mapTag = "[object Map]", setTag = "[object Set]";
2525
+ var argsTag = "[object Arguments]", arrayTag = "[object Array]", objectTag = "[object Object]";
2542
2526
  /** Used to check objects for own properties. */
2543
2527
  var hasOwnProperty = Object.prototype.hasOwnProperty;
2544
2528
  /**
2545
- * Checks if `value` is an empty object, collection, map, or set.
2546
- *
2547
- * Objects are considered empty if they have no own enumerable string keyed
2548
- * properties.
2549
- *
2550
- * Array-like values such as `arguments` objects, arrays, buffers, strings, or
2551
- * jQuery-like collections are considered empty if they have a `length` of `0`.
2552
- * Similarly, maps and sets are considered empty if they have a `size` of `0`.
2553
- *
2554
- * @static
2555
- * @memberOf _
2556
- * @since 0.1.0
2557
- * @category Lang
2558
- * @param {*} value The value to check.
2559
- * @returns {boolean} Returns `true` if `value` is empty, else `false`.
2560
- * @example
2561
- *
2562
- * _.isEmpty(null);
2563
- * // => true
2564
- *
2565
- * _.isEmpty(true);
2566
- * // => true
2567
- *
2568
- * _.isEmpty(1);
2569
- * // => true
2529
+ * A specialized version of `baseIsEqual` for arrays and objects which performs
2530
+ * deep comparisons and tracks traversed objects enabling objects with circular
2531
+ * references to be compared.
2570
2532
  *
2571
- * _.isEmpty([1, 2, 3]);
2572
- * // => false
2533
+ * @private
2534
+ * @param {Object} object The object to compare.
2535
+ * @param {Object} other The other object to compare.
2536
+ * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
2537
+ * @param {Function} customizer The function to customize comparisons.
2538
+ * @param {Function} equalFunc The function to determine equivalents of values.
2539
+ * @param {Object} [stack] Tracks traversed `object` and `other` objects.
2540
+ * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
2541
+ */
2542
+ function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
2543
+ var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : _getTag_default(object), othTag = othIsArr ? arrayTag : _getTag_default(other);
2544
+ objTag = objTag == argsTag ? objectTag : objTag;
2545
+ othTag = othTag == argsTag ? objectTag : othTag;
2546
+ var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag;
2547
+ if (isSameTag && isBuffer(object)) {
2548
+ if (!isBuffer(other)) return false;
2549
+ objIsArr = true;
2550
+ objIsObj = false;
2551
+ }
2552
+ if (isSameTag && !objIsObj) {
2553
+ stack || (stack = new Stack());
2554
+ return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
2555
+ }
2556
+ if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
2557
+ var objIsWrapped = objIsObj && hasOwnProperty.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty.call(other, "__wrapped__");
2558
+ if (objIsWrapped || othIsWrapped) {
2559
+ var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other;
2560
+ stack || (stack = new Stack());
2561
+ return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
2562
+ }
2563
+ }
2564
+ if (!isSameTag) return false;
2565
+ stack || (stack = new Stack());
2566
+ return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
2567
+ }
2568
+ //#endregion
2569
+ //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqual.js
2570
+ /**
2571
+ * The base implementation of `_.isEqual` which supports partial comparisons
2572
+ * and tracks traversed objects.
2573
2573
  *
2574
- * _.isEmpty({ 'a': 1 });
2575
- * // => false
2574
+ * @private
2575
+ * @param {*} value The value to compare.
2576
+ * @param {*} other The other value to compare.
2577
+ * @param {boolean} bitmask The bitmask flags.
2578
+ * 1 - Unordered comparison
2579
+ * 2 - Partial comparison
2580
+ * @param {Function} [customizer] The function to customize comparisons.
2581
+ * @param {Object} [stack] Tracks traversed `value` and `other` objects.
2582
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
2576
2583
  */
2577
- function isEmpty(value) {
2578
- if (value == null) return true;
2579
- if (isArrayLike(value) && (isArray(value) || typeof value == "string" || typeof value.splice == "function" || isBuffer(value) || isTypedArray(value) || isArguments(value))) return !value.length;
2580
- var tag = _getTag_default(value);
2581
- if (tag == mapTag || tag == setTag) return !value.size;
2582
- if (isPrototype(value)) return !baseKeys(value).length;
2583
- for (var key in value) if (hasOwnProperty.call(value, key)) return false;
2584
- return true;
2584
+ function baseIsEqual(value, other, bitmask, customizer, stack) {
2585
+ if (value === other) return true;
2586
+ if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) return value !== value && other !== other;
2587
+ return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
2585
2588
  }
2586
2589
  //#endregion
2587
2590
  //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isEqual.js
@@ -2664,7 +2667,7 @@
2664
2667
  var deleteField = (tagName) => fieldRegistry.delete(tagName);
2665
2668
  //#endregion
2666
2669
  //#region packages/form/src/utils/form.ts
2667
- var TABLE_SELECT_TYPES = new Set(["table-select", "tableSelect"]);
2670
+ var TABLE_SELECT_TYPES = /* @__PURE__ */ new Set(["table-select", "tableSelect"]);
2668
2671
  var isTableSelect = (type) => typeof type === "string" && TABLE_SELECT_TYPES.has(type);
2669
2672
  var asyncLoadConfig = (value, initValue, { asyncLoad, name, type }) => {
2670
2673
  if (type === "html" && typeof asyncLoad === "object" && typeof name !== "undefined") {
@@ -2672,7 +2675,7 @@
2672
2675
  value.asyncLoad = typeof initValue.asyncLoad === "object" ? initValue.asyncLoad : asyncLoad;
2673
2676
  }
2674
2677
  };
2675
- var MULTIPLE_VALUE_TYPES = new Set([
2678
+ var MULTIPLE_VALUE_TYPES = /* @__PURE__ */ new Set([
2676
2679
  "checkbox-group",
2677
2680
  "checkboxGroup",
2678
2681
  "table",
@@ -2889,7 +2892,8 @@
2889
2892
  var _hoisted_5$3 = ["innerHTML"];
2890
2893
  var _hoisted_6$1 = ["innerHTML"];
2891
2894
  var _hoisted_7$1 = ["innerHTML"];
2892
- var _hoisted_8$1 = {
2895
+ var _hoisted_8$1 = ["innerHTML"];
2896
+ var _hoisted_9 = {
2893
2897
  key: 5,
2894
2898
  style: { "text-align": "center" }
2895
2899
  };
@@ -2921,11 +2925,21 @@
2921
2925
  const props = __props;
2922
2926
  const emit = __emit;
2923
2927
  const mForm = (0, vue.inject)("mForm");
2928
+ const diffConfig = (0, vue.inject)(FORM_DIFF_CONFIG_KEY, {});
2924
2929
  const expand = (0, vue.ref)(false);
2925
2930
  const name = (0, vue.computed)(() => props.config.name || "");
2926
2931
  const showDiff = (0, vue.computed)(() => {
2927
2932
  if (!props.isCompare) return false;
2928
- return !isEqual(name.value ? props.model[name.value] : props.model, name.value ? props.lastValues[name.value] : props.lastValues);
2933
+ if (!name.value) return false;
2934
+ const curValue = props.model[name.value];
2935
+ const lastValue = props.lastValues[name.value];
2936
+ const customShowDiff = diffConfig.showDiff;
2937
+ if (typeof customShowDiff === "function") return Boolean(customShowDiff({
2938
+ curValue,
2939
+ lastValue,
2940
+ config: props.config
2941
+ }));
2942
+ return !isEqual(curValue, lastValue);
2929
2943
  });
2930
2944
  const items = (0, vue.computed)(() => props.config.items);
2931
2945
  const itemProp = (0, vue.computed)(() => {
@@ -2946,6 +2960,35 @@
2946
2960
  if (type.value === "component" && props.config.component) return props.config.component;
2947
2961
  return getField(type.value || "container") || `m-${items.value ? "form" : "fields"}-${type.value}`;
2948
2962
  });
2963
+ /**
2964
+ * 自接管对比的字段类型白名单。
2965
+ *
2966
+ * 这类字段在 `isCompare === true` 且存在差异时,不再由 Container 渲染前后两份独立组件来对比,
2967
+ * 而是只渲染一次组件,将 `model` / `lastValues` / `isCompare` 一并传给字段组件,
2968
+ * 由字段组件内部自行展示前后差异(典型场景:vs-code 字段使用 monaco 自带的 diff 编辑器)。
2969
+ *
2970
+ * 这样做的好处:
2971
+ * 1. 避免重型字段(如 monaco 编辑器)在对比模式下被实例化两次,节省资源;
2972
+ * 2. 提供更专业的对比视觉效果(如 monaco diff 的行级高亮、左右滚动同步等)。
2973
+ *
2974
+ * 注意:像 `event-select` / `code-select-col` 这类内部由列表 / 嵌套子表单组成的复合字段,若按默认逻辑
2975
+ * 渲染前后两份独立组件,会出现两套下拉框 + 两份参数表单(或两套「添加事件」按钮、两份完整面板),
2976
+ * 体验很差。这类字段在内部把 `is-compare`/`lastValues` 透传给子级容器,由子级逐项展示差异,
2977
+ * 因此同样归类为自接管对比字段。
2978
+ */
2979
+ const DEFAULT_SELF_DIFF_FIELD_TYPES = [
2980
+ "vs-code",
2981
+ "event-select",
2982
+ "code-select-col",
2983
+ "code-select"
2984
+ ];
2985
+ const effectiveSelfDiffFieldTypes = (0, vue.computed)(() => {
2986
+ const custom = diffConfig.selfDiffFieldTypes;
2987
+ if (typeof custom === "function") return new Set(custom([...DEFAULT_SELF_DIFF_FIELD_TYPES]));
2988
+ if (Array.isArray(custom)) return /* @__PURE__ */ new Set([...DEFAULT_SELF_DIFF_FIELD_TYPES, ...custom]);
2989
+ return new Set(DEFAULT_SELF_DIFF_FIELD_TYPES);
2990
+ });
2991
+ const isSelfDiffField = (0, vue.computed)(() => effectiveSelfDiffFieldTypes.value.has(type.value));
2949
2992
  const disabled = (0, vue.computed)(() => props.disabled || filterFunction(mForm, props.config.disabled, props));
2950
2993
  const text = (0, vue.computed)(() => filterFunction(mForm, props.config.text, props));
2951
2994
  const tooltip = (0, vue.computed)(() => {
@@ -3114,7 +3157,13 @@
3114
3157
  "label-width",
3115
3158
  "style"
3116
3159
  ])) : type.value && display$3.value && !showDiff.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 2 }, [(0, vue.createVNode)((0, vue.unref)(_tmagic_design.TMagicFormItem), (0, vue.mergeProps)(formItemProps.value, { class: { "tmagic-form-hidden": `${itemLabelWidth.value}` === "0" || !text.value } }), {
3117
- label: (0, vue.withCtx)(() => [(0, vue.createVNode)(FormLabel_default, {
3160
+ label: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "label", {
3161
+ config: __props.config,
3162
+ type: type.value,
3163
+ text: text.value,
3164
+ prop: itemProp.value,
3165
+ disabled: disabled.value
3166
+ }, () => [(0, vue.createVNode)(FormLabel_default, {
3118
3167
  tip: __props.config.tip,
3119
3168
  type: type.value,
3120
3169
  "use-label": __props.config.useLabel,
@@ -3126,7 +3175,7 @@
3126
3175
  "use-label",
3127
3176
  "label-title",
3128
3177
  "text"
3129
- ])]),
3178
+ ])])]),
3130
3179
  default: (0, vue.withCtx)(() => [tooltip.value.text ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicTooltip), {
3131
3180
  key: 0,
3132
3181
  placement: tooltip.value.placement
@@ -3155,7 +3204,7 @@
3155
3204
  "last-values",
3156
3205
  "is-compare"
3157
3206
  ]))]),
3158
- _: 1
3207
+ _: 3
3159
3208
  }, 16, ["class"]), __props.config.tip && type.value === "checkbox" && !__props.config.useLabel ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicTooltip), {
3160
3209
  key: 0,
3161
3210
  placement: "top"
@@ -3171,12 +3220,18 @@
3171
3220
  _: 1
3172
3221
  })) : (0, vue.createCommentVNode)("v-if", true)], 64)) : type.value && display$3.value && showDiff.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 3 }, [
3173
3222
  (0, vue.createCommentVNode)(" 对比 "),
3174
- (0, vue.createCommentVNode)(" 上次内容 "),
3175
- (0, vue.createVNode)((0, vue.unref)(_tmagic_design.TMagicFormItem), (0, vue.mergeProps)(formItemProps.value, { class: {
3223
+ (0, vue.createCommentVNode)(" 自接管对比的字段类型(如 vs-code):只渲染一次组件,由字段内部用 diff 编辑器/视图自行展示前后差异 "),
3224
+ isSelfDiffField.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicFormItem), (0, vue.mergeProps)({ key: 0 }, formItemProps.value, { class: {
3176
3225
  "tmagic-form-hidden": `${itemLabelWidth.value}` === "0" || !text.value,
3177
- "show-diff": true
3226
+ "self-diff": true
3178
3227
  } }), {
3179
- label: (0, vue.withCtx)(() => [(0, vue.createVNode)(FormLabel_default, {
3228
+ label: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "label", {
3229
+ config: __props.config,
3230
+ type: type.value,
3231
+ text: text.value,
3232
+ prop: itemProp.value,
3233
+ disabled: disabled.value
3234
+ }, () => [(0, vue.createVNode)(FormLabel_default, {
3180
3235
  tip: __props.config.tip,
3181
3236
  type: type.value,
3182
3237
  "use-label": __props.config.useLabel,
@@ -3188,88 +3243,148 @@
3188
3243
  "use-label",
3189
3244
  "label-title",
3190
3245
  "text"
3191
- ])]),
3246
+ ])])]),
3192
3247
  default: (0, vue.withCtx)(() => [tooltip.value.text ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicTooltip), {
3193
3248
  key: 0,
3194
3249
  placement: tooltip.value.placement
3195
3250
  }, {
3196
3251
  content: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { innerHTML: tooltip.value.text }, null, 8, _hoisted_4$4)]),
3197
3252
  default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(tagName.value), (0, vue.mergeProps)(fieldsProps.value, {
3198
- model: __props.lastValues,
3253
+ model: __props.model,
3254
+ "last-values": __props.lastValues,
3255
+ "is-compare": __props.isCompare,
3199
3256
  onChange: onChangeHandler
3200
- }), null, 16, ["model"]))]),
3257
+ }), null, 16, [
3258
+ "model",
3259
+ "last-values",
3260
+ "is-compare"
3261
+ ]))]),
3201
3262
  _: 1
3202
3263
  }, 8, ["placement"])) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(tagName.value), (0, vue.mergeProps)({ key: 1 }, fieldsProps.value, {
3203
- model: __props.lastValues,
3264
+ model: __props.model,
3265
+ "last-values": __props.lastValues,
3266
+ "is-compare": __props.isCompare,
3204
3267
  onChange: onChangeHandler
3205
- }), null, 16, ["model"]))]),
3206
- _: 1
3207
- }, 16, ["class"]),
3208
- __props.config.tip && type.value === "checkbox" && !__props.config.useLabel ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicTooltip), {
3209
- key: 0,
3210
- placement: "top"
3211
- }, {
3212
- content: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { innerHTML: __props.config.tip }, null, 8, _hoisted_5$3)]),
3213
- default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(_tmagic_design.TMagicIcon), { style: {
3214
- "line-height": "40px",
3215
- "margin-left": "5px"
3216
- } }, {
3217
- default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(_element_plus_icons_vue.WarningFilled))]),
3218
- _: 1
3219
- })]),
3220
- _: 1
3221
- })) : (0, vue.createCommentVNode)("v-if", true),
3222
- (0, vue.createCommentVNode)(" 当前内容 "),
3223
- (0, vue.createVNode)((0, vue.unref)(_tmagic_design.TMagicFormItem), (0, vue.mergeProps)(formItemProps.value, {
3224
- style: __props.config.tip ? "flex: 1" : "",
3225
- class: {
3268
+ }), null, 16, [
3269
+ "model",
3270
+ "last-values",
3271
+ "is-compare"
3272
+ ]))]),
3273
+ _: 3
3274
+ }, 16, ["class"])) : ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, [
3275
+ (0, vue.createCommentVNode)(" 普通字段:渲染前后两份独立的组件用于对比 "),
3276
+ (0, vue.createCommentVNode)(" 上次内容 "),
3277
+ (0, vue.createVNode)((0, vue.unref)(_tmagic_design.TMagicFormItem), (0, vue.mergeProps)(formItemProps.value, { class: {
3226
3278
  "tmagic-form-hidden": `${itemLabelWidth.value}` === "0" || !text.value,
3227
- "show-diff": true
3228
- }
3229
- }), {
3230
- label: (0, vue.withCtx)(() => [(0, vue.createVNode)(FormLabel_default, {
3231
- tip: __props.config.tip,
3232
- type: type.value,
3233
- "use-label": __props.config.useLabel,
3234
- "label-title": __props.config.labelTitle,
3235
- text: text.value
3236
- }, null, 8, [
3237
- "tip",
3238
- "type",
3239
- "use-label",
3240
- "label-title",
3241
- "text"
3242
- ])]),
3243
- default: (0, vue.withCtx)(() => [tooltip.value.text ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicTooltip), {
3279
+ "show-before-diff": true
3280
+ } }), {
3281
+ label: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "label", {
3282
+ config: __props.config,
3283
+ type: type.value,
3284
+ text: text.value,
3285
+ prop: itemProp.value,
3286
+ disabled: disabled.value
3287
+ }, () => [(0, vue.createVNode)(FormLabel_default, {
3288
+ tip: __props.config.tip,
3289
+ type: type.value,
3290
+ "use-label": __props.config.useLabel,
3291
+ "label-title": __props.config.labelTitle,
3292
+ text: text.value
3293
+ }, null, 8, [
3294
+ "tip",
3295
+ "type",
3296
+ "use-label",
3297
+ "label-title",
3298
+ "text"
3299
+ ])])]),
3300
+ default: (0, vue.withCtx)(() => [tooltip.value.text ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicTooltip), {
3301
+ key: 0,
3302
+ placement: tooltip.value.placement
3303
+ }, {
3304
+ content: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { innerHTML: tooltip.value.text }, null, 8, _hoisted_5$3)]),
3305
+ default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(tagName.value), (0, vue.mergeProps)(fieldsProps.value, {
3306
+ model: __props.lastValues,
3307
+ onChange: onChangeHandler
3308
+ }), null, 16, ["model"]))]),
3309
+ _: 1
3310
+ }, 8, ["placement"])) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(tagName.value), (0, vue.mergeProps)({ key: 1 }, fieldsProps.value, {
3311
+ model: __props.lastValues,
3312
+ onChange: onChangeHandler
3313
+ }), null, 16, ["model"]))]),
3314
+ _: 3
3315
+ }, 16, ["class"]),
3316
+ __props.config.tip && type.value === "checkbox" && !__props.config.useLabel ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicTooltip), {
3244
3317
  key: 0,
3245
- placement: tooltip.value.placement
3318
+ placement: "top"
3246
3319
  }, {
3247
- content: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { innerHTML: tooltip.value.text }, null, 8, _hoisted_6$1)]),
3248
- default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(tagName.value), (0, vue.mergeProps)(fieldsProps.value, {
3320
+ content: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { innerHTML: __props.config.tip }, null, 8, _hoisted_6$1)]),
3321
+ default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(_tmagic_design.TMagicIcon), { style: {
3322
+ "line-height": "40px",
3323
+ "margin-left": "5px"
3324
+ } }, {
3325
+ default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(_element_plus_icons_vue.WarningFilled))]),
3326
+ _: 1
3327
+ })]),
3328
+ _: 1
3329
+ })) : (0, vue.createCommentVNode)("v-if", true),
3330
+ (0, vue.createCommentVNode)(" 当前内容 "),
3331
+ (0, vue.createVNode)((0, vue.unref)(_tmagic_design.TMagicFormItem), (0, vue.mergeProps)(formItemProps.value, {
3332
+ style: __props.config.tip ? "flex: 1" : "",
3333
+ class: {
3334
+ "tmagic-form-hidden": `${itemLabelWidth.value}` === "0" || !text.value,
3335
+ "show-after-diff": true
3336
+ }
3337
+ }), {
3338
+ label: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "label", {
3339
+ config: __props.config,
3340
+ type: type.value,
3341
+ text: text.value,
3342
+ prop: itemProp.value,
3343
+ disabled: disabled.value
3344
+ }, () => [(0, vue.createVNode)(FormLabel_default, {
3345
+ tip: __props.config.tip,
3346
+ type: type.value,
3347
+ "use-label": __props.config.useLabel,
3348
+ "label-title": __props.config.labelTitle,
3349
+ text: text.value
3350
+ }, null, 8, [
3351
+ "tip",
3352
+ "type",
3353
+ "use-label",
3354
+ "label-title",
3355
+ "text"
3356
+ ])])]),
3357
+ default: (0, vue.withCtx)(() => [tooltip.value.text ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicTooltip), {
3358
+ key: 0,
3359
+ placement: tooltip.value.placement
3360
+ }, {
3361
+ content: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { innerHTML: tooltip.value.text }, null, 8, _hoisted_7$1)]),
3362
+ default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(tagName.value), (0, vue.mergeProps)(fieldsProps.value, {
3363
+ model: __props.model,
3364
+ onChange: onChangeHandler
3365
+ }), null, 16, ["model"]))]),
3366
+ _: 1
3367
+ }, 8, ["placement"])) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(tagName.value), (0, vue.mergeProps)({ key: 1 }, fieldsProps.value, {
3249
3368
  model: __props.model,
3250
3369
  onChange: onChangeHandler
3251
3370
  }), null, 16, ["model"]))]),
3371
+ _: 3
3372
+ }, 16, ["style", "class"]),
3373
+ __props.config.tip && type.value === "checkbox" && !__props.config.useLabel ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicTooltip), {
3374
+ key: 1,
3375
+ placement: "top"
3376
+ }, {
3377
+ content: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { innerHTML: __props.config.tip }, null, 8, _hoisted_8$1)]),
3378
+ default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(_tmagic_design.TMagicIcon), { style: {
3379
+ "line-height": "40px",
3380
+ "margin-left": "5px"
3381
+ } }, {
3382
+ default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(_element_plus_icons_vue.WarningFilled))]),
3383
+ _: 1
3384
+ })]),
3252
3385
  _: 1
3253
- }, 8, ["placement"])) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(tagName.value), (0, vue.mergeProps)({ key: 1 }, fieldsProps.value, {
3254
- model: __props.model,
3255
- onChange: onChangeHandler
3256
- }), null, 16, ["model"]))]),
3257
- _: 1
3258
- }, 16, ["style", "class"]),
3259
- __props.config.tip && type.value === "checkbox" && !__props.config.useLabel ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicTooltip), {
3260
- key: 1,
3261
- placement: "top"
3262
- }, {
3263
- content: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { innerHTML: __props.config.tip }, null, 8, _hoisted_7$1)]),
3264
- default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(_tmagic_design.TMagicIcon), { style: {
3265
- "line-height": "40px",
3266
- "margin-left": "5px"
3267
- } }, {
3268
- default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(_element_plus_icons_vue.WarningFilled))]),
3269
- _: 1
3270
- })]),
3271
- _: 1
3272
- })) : (0, vue.createCommentVNode)("v-if", true)
3386
+ })) : (0, vue.createCommentVNode)("v-if", true)
3387
+ ], 64))
3273
3388
  ], 64)) : items.value && display$3.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 4 }, [(isValidName() ? __props.model[name.value] : __props.model) ? ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, (0, vue.renderList)(items.value, (item) => {
3274
3389
  return (0, vue.openBlock)(), (0, vue.createBlock)(_component_Container, {
3275
3390
  key: key(item),
@@ -3285,7 +3400,11 @@
3285
3400
  prop: itemProp.value,
3286
3401
  onChange: onChangeHandler,
3287
3402
  onAddDiffCount
3288
- }, null, 8, [
3403
+ }, (0, vue.createSlots)({ _: 2 }, [_ctx.$slots.label ? {
3404
+ name: "label",
3405
+ fn: (0, vue.withCtx)((labelProps) => [(0, vue.renderSlot)(_ctx.$slots, "label", (0, vue.mergeProps)({ ref_for: true }, labelProps))]),
3406
+ key: "0"
3407
+ } : void 0]), 1032, [
3289
3408
  "model",
3290
3409
  "last-values",
3291
3410
  "is-compare",
@@ -3297,7 +3416,7 @@
3297
3416
  "label-width",
3298
3417
  "prop"
3299
3418
  ]);
3300
- }), 128)) : (0, vue.createCommentVNode)("v-if", true)], 64)) : (0, vue.createCommentVNode)("v-if", true), __props.config.expand && type.value !== "fieldset" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_8$1, [(0, vue.createVNode)((0, vue.unref)(_tmagic_design.TMagicButton), {
3419
+ }), 128)) : (0, vue.createCommentVNode)("v-if", true)], 64)) : (0, vue.createCommentVNode)("v-if", true), __props.config.expand && type.value !== "fieldset" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_9, [(0, vue.createVNode)((0, vue.unref)(_tmagic_design.TMagicButton), {
3301
3420
  type: "primary",
3302
3421
  size: "small",
3303
3422
  disabled: false,
@@ -3340,7 +3459,13 @@
3340
3459
  keyProp: { default: "__key" },
3341
3460
  popperClass: {},
3342
3461
  preventSubmitDefault: { type: Boolean },
3343
- extendState: {}
3462
+ useFieldTextInError: {
3463
+ type: Boolean,
3464
+ default: true
3465
+ },
3466
+ extendState: {},
3467
+ showDiff: {},
3468
+ selfDiffFieldTypes: {}
3344
3469
  },
3345
3470
  emits: [
3346
3471
  "change",
@@ -3456,6 +3581,14 @@
3456
3581
  }
3457
3582
  });
3458
3583
  (0, vue.provide)("mForm", formState);
3584
+ (0, vue.provide)(FORM_DIFF_CONFIG_KEY, {
3585
+ get showDiff() {
3586
+ return props.showDiff;
3587
+ },
3588
+ get selfDiffFieldTypes() {
3589
+ return props.selfDiffFieldTypes;
3590
+ }
3591
+ });
3459
3592
  const changeRecords = (0, vue.shallowRef)([]);
3460
3593
  (0, vue.watch)([() => props.config, () => props.initValues], ([config], [preConfig]) => {
3461
3594
  changeRecords.value = [];
@@ -3540,7 +3673,7 @@
3540
3673
  Object.entries(invalidFields).forEach(([prop, ValidateError]) => {
3541
3674
  ValidateError.forEach(({ field, message }) => {
3542
3675
  const name = field || prop;
3543
- const text = getTextByName(name, props.config) || name;
3676
+ const text = (props.useFieldTextInError ? getTextByName(name, props.config) : void 0) || name;
3544
3677
  error.push(`${text} -> ${message}`);
3545
3678
  });
3546
3679
  });
@@ -3572,7 +3705,11 @@
3572
3705
  "step-active": __props.stepActive,
3573
3706
  size: __props.size,
3574
3707
  onChange: changeHandler
3575
- }, null, 8, [
3708
+ }, (0, vue.createSlots)({ _: 2 }, [_ctx.$slots.label ? {
3709
+ name: "label",
3710
+ fn: (0, vue.withCtx)((labelProps) => [(0, vue.renderSlot)(_ctx.$slots, "label", (0, vue.mergeProps)({ ref_for: true }, labelProps))]),
3711
+ key: "0"
3712
+ } : void 0]), 1032, [
3576
3713
  "disabled",
3577
3714
  "config",
3578
3715
  "model",
@@ -3583,7 +3720,7 @@
3583
3720
  "size"
3584
3721
  ]);
3585
3722
  }), 128)) : (0, vue.createCommentVNode)("v-if", true)]),
3586
- _: 1
3723
+ _: 3
3587
3724
  }, 8, [
3588
3725
  "model",
3589
3726
  "label-width",
@@ -3616,13 +3753,27 @@
3616
3753
  * } catch (e) {
3617
3754
  * console.error(e);
3618
3755
  * }
3756
+ *
3757
+ * // 需要同时获取变更记录时:
3758
+ * const { values, changeRecords } = await submitForm({
3759
+ * config: [...],
3760
+ * initValues: { name: 'foo' },
3761
+ * returnChangeRecords: true,
3762
+ * });
3763
+ *
3764
+ * // 调试模式:可见地渲染表单,点击「确定」才提交:
3765
+ * const values = await submitForm({
3766
+ * config: [...],
3767
+ * initValues: { name: 'foo' },
3768
+ * debug: true,
3769
+ * });
3619
3770
  * ```
3620
3771
  */
3621
3772
  var submitForm = (options) => {
3622
- const { native, appContext, timeout = 1e4, ...formProps } = options;
3773
+ const { native, appContext, timeout = 1e4, returnChangeRecords, debug = false, ...formProps } = options;
3623
3774
  return new Promise((resolve, reject) => {
3624
3775
  const container = document.createElement("div");
3625
- container.style.display = "none";
3776
+ if (!debug) container.style.display = "none";
3626
3777
  document.body.appendChild(container);
3627
3778
  let cleaned = false;
3628
3779
  let timer = null;
@@ -3630,17 +3781,106 @@
3630
3781
  name: "MFormSubmitWrapper",
3631
3782
  setup() {
3632
3783
  const formRef = (0, vue.ref)(null);
3633
- const stop = (0, vue.watch)(() => formRef.value?.initialized, async (initialized) => {
3634
- if (!initialized) return;
3635
- stop();
3784
+ const errorMsg = (0, vue.ref)("");
3785
+ const doSubmit = async () => {
3636
3786
  try {
3637
3787
  await (0, vue.nextTick)();
3638
- resolve(await formRef.value.submitForm(native));
3788
+ const changeRecords = [...formRef.value?.changeRecords ?? []];
3789
+ const result = await formRef.value.submitForm(native);
3790
+ resolve(returnChangeRecords ? {
3791
+ values: result,
3792
+ changeRecords
3793
+ } : result);
3794
+ cleanup();
3639
3795
  } catch (err) {
3796
+ if (debug) {
3797
+ errorMsg.value = err instanceof Error ? err.message : String(err);
3798
+ return;
3799
+ }
3640
3800
  reject(err);
3641
- } finally {
3642
3801
  cleanup();
3643
3802
  }
3803
+ };
3804
+ if (debug) {
3805
+ const handleCancel = () => {
3806
+ reject(/* @__PURE__ */ new Error("submitForm canceled in debug mode."));
3807
+ cleanup();
3808
+ };
3809
+ const btnBase = {
3810
+ padding: "8px 20px",
3811
+ fontSize: "14px",
3812
+ lineHeight: "1",
3813
+ border: "1px solid #dcdfe6",
3814
+ borderRadius: "4px",
3815
+ cursor: "pointer"
3816
+ };
3817
+ return () => (0, vue.h)("div", { style: {
3818
+ position: "fixed",
3819
+ inset: "0",
3820
+ zIndex: "10000",
3821
+ display: "flex",
3822
+ alignItems: "center",
3823
+ justifyContent: "center",
3824
+ background: "rgba(0, 0, 0, 0.5)"
3825
+ } }, [(0, vue.h)("div", { style: {
3826
+ display: "flex",
3827
+ flexDirection: "column",
3828
+ width: "600px",
3829
+ maxWidth: "90vw",
3830
+ maxHeight: "85vh",
3831
+ background: "#fff",
3832
+ borderRadius: "8px",
3833
+ boxShadow: "0 8px 24px rgba(0, 0, 0, 0.2)",
3834
+ overflow: "hidden"
3835
+ } }, [
3836
+ (0, vue.h)("div", { style: {
3837
+ padding: "16px 20px",
3838
+ fontSize: "16px",
3839
+ fontWeight: "600",
3840
+ borderBottom: "1px solid #ebeef5"
3841
+ } }, "submitForm 调试"),
3842
+ (0, vue.h)("div", { style: {
3843
+ flex: "1",
3844
+ padding: "20px",
3845
+ overflow: "auto"
3846
+ } }, [(0, vue.h)(Form_default, {
3847
+ ...formProps,
3848
+ ref: formRef
3849
+ }), errorMsg.value ? (0, vue.h)("div", {
3850
+ style: {
3851
+ marginTop: "12px",
3852
+ color: "#f56c6c",
3853
+ fontSize: "13px",
3854
+ lineHeight: "1.5"
3855
+ },
3856
+ innerHTML: errorMsg.value
3857
+ }) : null]),
3858
+ (0, vue.h)("div", { style: {
3859
+ display: "flex",
3860
+ justifyContent: "flex-end",
3861
+ gap: "12px",
3862
+ padding: "12px 20px",
3863
+ borderTop: "1px solid #ebeef5"
3864
+ } }, [(0, vue.h)("button", {
3865
+ type: "button",
3866
+ onClick: handleCancel,
3867
+ style: { ...btnBase }
3868
+ }, "取消"), (0, vue.h)("button", {
3869
+ type: "button",
3870
+ onClick: doSubmit,
3871
+ style: {
3872
+ ...btnBase,
3873
+ color: "#fff",
3874
+ background: "#409eff",
3875
+ borderColor: "#409eff"
3876
+ }
3877
+ }, "确定")])
3878
+ ])]);
3879
+ }
3880
+ const stop = (0, vue.watch)(() => formRef.value?.initialized, (initialized) => {
3881
+ if (!initialized) return;
3882
+ stop();
3883
+ doSubmit();
3644
3884
  }, {
3645
3885
  flush: "post",
3646
3886
  immediate: true
@@ -3664,7 +3904,7 @@
3664
3904
  } catch {}
3665
3905
  container.parentNode?.removeChild(container);
3666
3906
  };
3667
- if (timeout > 0) timer = setTimeout(() => {
3907
+ if (timeout > 0 && !debug) timer = setTimeout(() => {
3668
3908
  if (!cleaned) {
3669
3909
  reject(/* @__PURE__ */ new Error(`submitForm timeout after ${timeout}ms: form is not initialized.`));
3670
3910
  cleanup();
@@ -3721,6 +3961,10 @@
3721
3961
  type: Boolean,
3722
3962
  default: true
3723
3963
  },
3964
+ useFieldTextInError: {
3965
+ type: Boolean,
3966
+ default: true
3967
+ },
3724
3968
  extendState: {}
3725
3969
  },
3726
3970
  emits: [
@@ -3871,6 +4115,7 @@
3871
4115
  "label-position": __props.labelPosition,
3872
4116
  inline: __props.inline,
3873
4117
  "prevent-submit-default": __props.preventSubmitDefault,
4118
+ "use-field-text-in-error": __props.useFieldTextInError,
3874
4119
  "extend-state": __props.extendState,
3875
4120
  onChange: changeHandler
3876
4121
  }, null, 8, [
@@ -3884,6 +4129,7 @@
3884
4129
  "label-position",
3885
4130
  "inline",
3886
4131
  "prevent-submit-default",
4132
+ "use-field-text-in-error",
3887
4133
  "extend-state"
3888
4134
  ]), (0, vue.renderSlot)(_ctx.$slots, "default")], 4)) : (0, vue.createCommentVNode)("v-if", true)]),
3889
4135
  _: 3
@@ -3927,6 +4173,10 @@
3927
4173
  inline: { type: Boolean },
3928
4174
  labelPosition: {},
3929
4175
  preventSubmitDefault: { type: Boolean },
4176
+ useFieldTextInError: {
4177
+ type: Boolean,
4178
+ default: true
4179
+ },
3930
4180
  beforeClose: {},
3931
4181
  extendState: {}
3932
4182
  },
@@ -4052,6 +4302,7 @@
4052
4302
  "label-position": __props.labelPosition,
4053
4303
  inline: __props.inline,
4054
4304
  "prevent-submit-default": __props.preventSubmitDefault,
4305
+ "use-field-text-in-error": __props.useFieldTextInError,
4055
4306
  "extend-state": __props.extendState,
4056
4307
  onChange: changeHandler
4057
4308
  }, null, 8, [
@@ -4064,6 +4315,7 @@
4064
4315
  "label-position",
4065
4316
  "inline",
4066
4317
  "prevent-submit-default",
4318
+ "use-field-text-in-error",
4067
4319
  "extend-state"
4068
4320
  ]), (0, vue.renderSlot)(_ctx.$slots, "default")], 512)) : (0, vue.createCommentVNode)("v-if", true)]),
4069
4321
  _: 3
@@ -4099,6 +4351,10 @@
4099
4351
  inline: { type: Boolean },
4100
4352
  labelPosition: {},
4101
4353
  preventSubmitDefault: { type: Boolean },
4354
+ useFieldTextInError: {
4355
+ type: Boolean,
4356
+ default: true
4357
+ },
4102
4358
  extendState: {}
4103
4359
  },
4104
4360
  emits: [
@@ -4161,6 +4417,7 @@
4161
4417
  "label-position": __props.labelPosition,
4162
4418
  inline: __props.inline,
4163
4419
  "prevent-submit-default": __props.preventSubmitDefault,
4420
+ "use-field-text-in-error": __props.useFieldTextInError,
4164
4421
  "extend-state": __props.extendState,
4165
4422
  onChange: changeHandler
4166
4423
  }, null, 8, [
@@ -4173,6 +4430,7 @@
4173
4430
  "label-position",
4174
4431
  "inline",
4175
4432
  "prevent-submit-default",
4433
+ "use-field-text-in-error",
4176
4434
  "extend-state"
4177
4435
  ]), (0, vue.renderSlot)(_ctx.$slots, "default")]),
4178
4436
  _: 3
@@ -4234,6 +4492,7 @@
4234
4492
  const emit = __emit;
4235
4493
  const mForm = (0, vue.inject)("mForm");
4236
4494
  const name = (0, vue.computed)(() => props.config.name || "");
4495
+ const legend = (0, vue.computed)(() => filterFunction(mForm, props.config.legend, props));
4237
4496
  const checkboxName = (0, vue.computed)(() => {
4238
4497
  if (typeof props.config.checkbox === "object" && typeof props.config.checkbox.name === "string") return props.config.checkbox.name;
4239
4498
  return "value";
@@ -4273,7 +4532,7 @@
4273
4532
  "false-value": checkboxFalseValue.value,
4274
4533
  "onUpdate:modelValue": valueChangeHandler
4275
4534
  }, {
4276
- default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", { innerHTML: __props.config.legend }, null, 8, _hoisted_1$11), __props.config.extra ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", {
4535
+ default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", { innerHTML: legend.value }, null, 8, _hoisted_1$11), __props.config.extra ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", {
4277
4536
  key: 0,
4278
4537
  innerHTML: __props.config.extra,
4279
4538
  class: "m-form-tip"
@@ -4286,7 +4545,7 @@
4286
4545
  "false-value"
4287
4546
  ])]),
4288
4547
  _: 1
4289
- })) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("legend", _hoisted_3$5, [(0, vue.createElementVNode)("span", { innerHTML: __props.config.legend }, null, 8, _hoisted_4$3), __props.config.extra ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", {
4548
+ })) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("legend", _hoisted_3$5, [(0, vue.createElementVNode)("span", { innerHTML: legend.value }, null, 8, _hoisted_4$3), __props.config.extra ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", {
4290
4549
  key: 0,
4291
4550
  innerHTML: __props.config.extra,
4292
4551
  class: "m-form-tip"
@@ -4723,6 +4982,9 @@
4723
4982
  prop: props.prop
4724
4983
  });
4725
4984
  });
4985
+ (0, vue.watch)([() => props.model, () => props.lastValues], () => {
4986
+ diffCount.value = {};
4987
+ });
4726
4988
  const tabItems = (tab) => props.config.dynamic ? props.config.items : tab.items;
4727
4989
  const tabClickHandler = (tab) => {
4728
4990
  if (typeof tab === "object") tabClick(mForm, tab, props);
@@ -4797,7 +5059,7 @@
4797
5059
  default: (0, vue.withCtx)(() => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(tabs.value, (tab, tabIndex) => {
4798
5060
  return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)((0, vue.unref)(tabPaneComponent)?.component || "el-tab-pane"), (0, vue.mergeProps)({ key: tab[(0, vue.unref)(mForm)?.keyProp || "__key"] ?? tabIndex }, { ref_for: true }, (0, vue.unref)(tabPaneComponent)?.props({
4799
5061
  name: filter(tab.status) || tabIndex.toString(),
4800
- lazy: tab.lazy || false
5062
+ lazy: __props.isCompare ? false : tab.lazy || false
4801
5063
  }) || {}), {
4802
5064
  label: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", null, [(0, vue.createTextVNode)((0, vue.toDisplayString)(filter(tab.title)), 1), (0, vue.createVNode)((0, vue.unref)(_tmagic_design.TMagicBadge), {
4803
5065
  hidden: !diffCount.value[Number(tabIndex)],
@@ -4938,16 +5200,17 @@
4938
5200
  }), (0, vue.createElementVNode)("span", { innerHTML: title.value }, null, 8, _hoisted_1$9)]),
4939
5201
  _: 1
4940
5202
  }, 8, ["disabled"]),
4941
- (0, vue.withDirectives)((0, vue.createVNode)((0, vue.unref)(_tmagic_design.TMagicButton), {
5203
+ !__props.isCompare ? (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicButton), {
5204
+ key: 0,
4942
5205
  type: "danger",
4943
5206
  size: "small",
4944
5207
  link: "",
4945
5208
  icon: (0, vue.unref)(_element_plus_icons_vue.Delete),
4946
5209
  disabled: __props.disabled,
4947
5210
  onClick: removeHandler
4948
- }, null, 8, ["icon", "disabled"]), [[vue.vShow, showDelete.value]]),
4949
- copyable.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicButton), {
4950
- key: 0,
5211
+ }, null, 8, ["icon", "disabled"])), [[vue.vShow, showDelete.value]]) : (0, vue.createCommentVNode)("v-if", true),
5212
+ copyable.value && !__props.isCompare ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicButton), {
5213
+ key: 1,
4951
5214
  link: "",
4952
5215
  size: "small",
4953
5216
  type: "primary",
@@ -4958,7 +5221,7 @@
4958
5221
  default: (0, vue.withCtx)(() => [..._cache[6] || (_cache[6] = [(0, vue.createTextVNode)("复制", -1)])]),
4959
5222
  _: 1
4960
5223
  }, 8, ["icon", "disabled"])) : (0, vue.createCommentVNode)("v-if", true),
4961
- movable.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, [(0, vue.withDirectives)((0, vue.createVNode)((0, vue.unref)(_tmagic_design.TMagicButton), {
5224
+ movable.value && !__props.isCompare ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 2 }, [(0, vue.withDirectives)((0, vue.createVNode)((0, vue.unref)(_tmagic_design.TMagicButton), {
4962
5225
  link: "",
4963
5226
  size: "small",
4964
5227
  disabled: __props.disabled,
@@ -4977,8 +5240,8 @@
4977
5240
  default: (0, vue.withCtx)(() => [..._cache[8] || (_cache[8] = [(0, vue.createTextVNode)("下移", -1)])]),
4978
5241
  _: 1
4979
5242
  }, 8, ["disabled", "icon"]), [[vue.vShow, __props.index !== length.value - 1]])], 64)) : (0, vue.createCommentVNode)("v-if", true),
4980
- __props.config.moveSpecifyLocation ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicPopover), {
4981
- key: 2,
5243
+ __props.config.moveSpecifyLocation && !__props.isCompare ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicPopover), {
5244
+ key: 3,
4982
5245
  trigger: "click",
4983
5246
  placement: "top",
4984
5247
  width: "200",
@@ -5024,7 +5287,7 @@
5024
5287
  _: 1
5025
5288
  }, 8, ["visible"])) : (0, vue.createCommentVNode)("v-if", true),
5026
5289
  itemExtra.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", {
5027
- key: 3,
5290
+ key: 4,
5028
5291
  innerHTML: itemExtra.value,
5029
5292
  class: "m-form-tip"
5030
5293
  }, null, 8, _hoisted_3$3)) : (0, vue.createCommentVNode)("v-if", true)
@@ -5064,7 +5327,10 @@
5064
5327
  key: 1,
5065
5328
  class: "el-table__empty-block"
5066
5329
  };
5067
- var _hoisted_4$1 = { class: "m-fields-group-list-footer" };
5330
+ var _hoisted_4$1 = {
5331
+ key: 3,
5332
+ class: "m-fields-group-list-footer"
5333
+ };
5068
5334
  var _hoisted_5 = { style: {
5069
5335
  "display": "flex",
5070
5336
  "justify-content": "flex-end",
@@ -5149,7 +5415,7 @@
5149
5415
  "group-model"
5150
5416
  ]);
5151
5417
  }), 128)),
5152
- (0, vue.createElementVNode)("div", _hoisted_4$1, [(0, vue.renderSlot)(_ctx.$slots, "toggle-button"), (0, vue.createElementVNode)("div", _hoisted_5, [(0, vue.renderSlot)(_ctx.$slots, "add-button")])])
5418
+ !__props.isCompare ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_4$1, [(0, vue.renderSlot)(_ctx.$slots, "toggle-button"), (0, vue.createElementVNode)("div", _hoisted_5, [(0, vue.renderSlot)(_ctx.$slots, "add-button")])])) : (0, vue.createCommentVNode)("v-if", true)
5153
5419
  ]);
5154
5420
  };
5155
5421
  }
@@ -5751,7 +6017,7 @@
5751
6017
  default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(isFullscreen) ? "退出全屏" : "全屏编辑"), 1)]),
5752
6018
  _: 1
5753
6019
  }, 8, ["icon", "onClick"])) : (0, vue.createCommentVNode)("v-if", true),
5754
- (0, vue.unref)(importable) ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicUpload), {
6020
+ (0, vue.unref)(importable) && !__props.isCompare ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicUpload), {
5755
6021
  key: 2,
5756
6022
  style: { "display": "inline-block" },
5757
6023
  ref: "excelBtn",
@@ -5771,7 +6037,7 @@
5771
6037
  }, 8, ["disabled"])]),
5772
6038
  _: 1
5773
6039
  }, 8, ["disabled", "on-change"])) : (0, vue.createCommentVNode)("v-if", true),
5774
- (0, vue.unref)(importable) ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicButton), {
6040
+ (0, vue.unref)(importable) && !__props.isCompare ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicButton), {
5775
6041
  key: 3,
5776
6042
  size: "small",
5777
6043
  type: "warning",
@@ -5782,7 +6048,7 @@
5782
6048
  default: (0, vue.withCtx)(() => [..._cache[1] || (_cache[1] = [(0, vue.createTextVNode)("清空", -1)])]),
5783
6049
  _: 1
5784
6050
  }, 8, ["disabled", "onClick"])) : (0, vue.createCommentVNode)("v-if", true)
5785
- ]), (0, vue.renderSlot)(_ctx.$slots, "add-button")]),
6051
+ ]), !__props.isCompare ? (0, vue.renderSlot)(_ctx.$slots, "add-button", { key: 0 }) : (0, vue.createCommentVNode)("v-if", true)]),
5786
6052
  __props.config.pagination ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_4, [(0, vue.createVNode)((0, vue.unref)(_tmagic_design.TMagicPagination), {
5787
6053
  layout: "total, sizes, prev, pager, next, jumper",
5788
6054
  "hide-on-single-page": __props.model[modelName.value].length < (0, vue.unref)(pageSize),
@@ -7861,6 +8127,7 @@
7861
8127
  } };
7862
8128
  var createForm = (config) => config;
7863
8129
  //#endregion
8130
+ exports.FORM_DIFF_CONFIG_KEY = FORM_DIFF_CONFIG_KEY;
7864
8131
  exports.MCascader = Cascader_default;
7865
8132
  exports.MCheckbox = Checkbox_default;
7866
8133
  exports.MCheckboxGroup = CheckboxGroup_default;