@tmagic/editor 1.8.0-beta.22 → 1.8.0-beta.24

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 (47) hide show
  1. package/dist/es/components/CodeBlockEditor.vue_vue_type_script_setup_true_lang.js +2 -1
  2. package/dist/es/components/Resizer.vue_vue_type_script_setup_true_lang.js +2 -1
  3. package/dist/es/fields/CodeSelectCol.vue_vue_type_script_setup_true_lang.js +5 -4
  4. package/dist/es/fields/CondOpSelect.vue_vue_type_script_setup_true_lang.js +3 -1
  5. package/dist/es/fields/DataSourceFieldSelect/Index.vue_vue_type_script_setup_true_lang.js +5 -4
  6. package/dist/es/fields/DataSourceFields.vue_vue_type_script_setup_true_lang.js +12 -7
  7. package/dist/es/fields/DataSourceInput.vue_vue_type_script_setup_true_lang.js +2 -1
  8. package/dist/es/fields/DataSourceMethodSelect.vue_vue_type_script_setup_true_name_true_lang.js +6 -4
  9. package/dist/es/fields/DataSourceMethods.vue_vue_type_script_setup_true_lang.js +4 -1
  10. package/dist/es/fields/DataSourceMocks.vue_vue_type_script_setup_true_lang.js +8 -5
  11. package/dist/es/fields/DisplayConds.vue_vue_type_script_setup_true_lang.js +4 -2
  12. package/dist/es/fields/EventSelect.vue_vue_type_script_setup_true_lang.js +2 -2
  13. package/dist/es/fields/KeyValue.vue_vue_type_script_setup_true_lang.js +4 -2
  14. package/dist/es/hooks/use-compare-form.js +1 -2
  15. package/dist/es/index.js +2 -2
  16. package/dist/es/initService.js +2 -1
  17. package/dist/es/layouts/sidebar/Sidebar.vue_vue_type_script_setup_true_lang.js +2 -1
  18. package/dist/es/layouts/sidebar/data-source/DataSourceConfigPanel.vue_vue_type_script_setup_true_lang.js +2 -1
  19. package/dist/es/layouts/sidebar/layer/LayerPanel.vue_vue_type_script_setup_true_lang.js +2 -1
  20. package/dist/es/plugin.js +9 -1
  21. package/dist/es/services/codeBlock.js +4 -2
  22. package/dist/es/services/editor.js +43 -37
  23. package/dist/es/services/props.js +1 -1
  24. package/dist/es/utils/dep/collect-worker-client.js +67 -27
  25. package/dist/es/utils/dep/worker.js +1 -1
  26. package/dist/es/utils/event.js +1 -1
  27. package/dist/es/utils/props.js +1 -29
  28. package/dist/es/utils/type-match-rules.js +7 -27
  29. package/dist/tmagic-editor.umd.cjs +663 -629
  30. package/package.json +13 -13
  31. package/src/fields/CodeSelectCol.vue +4 -2
  32. package/src/fields/DataSourceFieldSelect/Index.vue +5 -3
  33. package/src/fields/DataSourceFields.vue +6 -0
  34. package/src/fields/DataSourceMethodSelect.vue +4 -1
  35. package/src/fields/DataSourceMethods.vue +11 -2
  36. package/src/fields/DataSourceMocks.vue +10 -1
  37. package/src/fields/EventSelect.vue +3 -3
  38. package/src/fields/KeyValue.vue +4 -3
  39. package/src/hooks/use-compare-form.ts +1 -4
  40. package/src/plugin.ts +9 -1
  41. package/src/services/editor.ts +53 -85
  42. package/src/type.ts +23 -0
  43. package/src/utils/dep/collect-worker-client.ts +97 -31
  44. package/src/utils/event.ts +2 -2
  45. package/src/utils/props.ts +0 -32
  46. package/src/utils/type-match-rules.ts +4 -30
  47. package/types/index.d.ts +121 -210
@@ -56,7 +56,7 @@
56
56
  }
57
57
  return to;
58
58
  };
59
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
59
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule || !__hasOwnProp.call(mod, "default") ? __defProp(target, "default", {
60
60
  value: mod,
61
61
  enumerable: true
62
62
  }) : target, mod));
@@ -187,13 +187,13 @@
187
187
  };
188
188
  }));
189
189
  //#endregion
190
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_freeGlobal.js
190
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_freeGlobal.js
191
191
  var freeGlobal;
192
192
  var init__freeGlobal = __esmMin((() => {
193
193
  freeGlobal = typeof global == "object" && global && global.Object === Object && global;
194
194
  }));
195
195
  //#endregion
196
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_root.js
196
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_root.js
197
197
  var freeSelf, root$1;
198
198
  var init__root = __esmMin((() => {
199
199
  init__freeGlobal();
@@ -201,14 +201,14 @@
201
201
  root$1 = freeGlobal || freeSelf || Function("return this")();
202
202
  }));
203
203
  //#endregion
204
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Symbol.js
204
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_Symbol.js
205
205
  var Symbol$1;
206
206
  var init__Symbol = __esmMin((() => {
207
207
  init__root();
208
208
  Symbol$1 = root$1.Symbol;
209
209
  }));
210
210
  //#endregion
211
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getRawTag.js
211
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getRawTag.js
212
212
  /**
213
213
  * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
214
214
  *
@@ -236,7 +236,7 @@
236
236
  symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : void 0;
237
237
  }));
238
238
  //#endregion
239
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_objectToString.js
239
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_objectToString.js
240
240
  /**
241
241
  * Converts `value` to a string using `Object.prototype.toString`.
242
242
  *
@@ -252,7 +252,7 @@
252
252
  nativeObjectToString = Object.prototype.toString;
253
253
  }));
254
254
  //#endregion
255
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetTag.js
255
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseGetTag.js
256
256
  /**
257
257
  * The base implementation of `getTag` without fallbacks for buggy environments.
258
258
  *
@@ -274,7 +274,7 @@
274
274
  symToStringTag = Symbol$1 ? Symbol$1.toStringTag : void 0;
275
275
  }));
276
276
  //#endregion
277
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObjectLike.js
277
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isObjectLike.js
278
278
  /**
279
279
  * Checks if `value` is object-like. A value is object-like if it's not `null`
280
280
  * and has a `typeof` result of "object".
@@ -304,7 +304,7 @@
304
304
  }
305
305
  var init_isObjectLike = __esmMin((() => {}));
306
306
  //#endregion
307
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSymbol.js
307
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isSymbol.js
308
308
  /**
309
309
  * Checks if `value` is classified as a `Symbol` primitive or object.
310
310
  *
@@ -332,7 +332,7 @@
332
332
  symbolTag$3 = "[object Symbol]";
333
333
  }));
334
334
  //#endregion
335
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayMap.js
335
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_arrayMap.js
336
336
  /**
337
337
  * A specialized version of `_.map` for arrays without support for iteratee
338
338
  * shorthands.
@@ -349,13 +349,13 @@
349
349
  }
350
350
  var init__arrayMap = __esmMin((() => {}));
351
351
  //#endregion
352
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArray.js
352
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isArray.js
353
353
  var isArray;
354
354
  var init_isArray = __esmMin((() => {
355
355
  isArray = Array.isArray;
356
356
  }));
357
357
  //#endregion
358
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseToString.js
358
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseToString.js
359
359
  /**
360
360
  * The base implementation of `_.toString` which doesn't convert nullish
361
361
  * values to empty strings.
@@ -382,7 +382,7 @@
382
382
  symbolToString = symbolProto$2 ? symbolProto$2.toString : void 0;
383
383
  }));
384
384
  //#endregion
385
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_trimmedEndIndex.js
385
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_trimmedEndIndex.js
386
386
  /**
387
387
  * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace
388
388
  * character of `string`.
@@ -401,7 +401,7 @@
401
401
  reWhitespace = /\s/;
402
402
  }));
403
403
  //#endregion
404
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTrim.js
404
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseTrim.js
405
405
  /**
406
406
  * The base implementation of `_.trim`.
407
407
  *
@@ -418,7 +418,7 @@
418
418
  reTrimStart = /^\s+/;
419
419
  }));
420
420
  //#endregion
421
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObject.js
421
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isObject.js
422
422
  /**
423
423
  * Checks if `value` is the
424
424
  * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
@@ -450,7 +450,7 @@
450
450
  }
451
451
  var init_isObject = __esmMin((() => {}));
452
452
  //#endregion
453
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toNumber.js
453
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/toNumber.js
454
454
  /**
455
455
  * Converts `value` to a number.
456
456
  *
@@ -498,7 +498,7 @@
498
498
  freeParseInt = parseInt;
499
499
  }));
500
500
  //#endregion
501
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/identity.js
501
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/identity.js
502
502
  /**
503
503
  * This method returns the first argument it receives.
504
504
  *
@@ -520,7 +520,7 @@
520
520
  }
521
521
  var init_identity = __esmMin((() => {}));
522
522
  //#endregion
523
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isFunction.js
523
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isFunction.js
524
524
  /**
525
525
  * Checks if `value` is classified as a `Function` object.
526
526
  *
@@ -553,14 +553,14 @@
553
553
  proxyTag = "[object Proxy]";
554
554
  }));
555
555
  //#endregion
556
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_coreJsData.js
556
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_coreJsData.js
557
557
  var coreJsData;
558
558
  var init__coreJsData = __esmMin((() => {
559
559
  init__root();
560
560
  coreJsData = root$1["__core-js_shared__"];
561
561
  }));
562
562
  //#endregion
563
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isMasked.js
563
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_isMasked.js
564
564
  /**
565
565
  * Checks if `func` has its source masked.
566
566
  *
@@ -580,7 +580,7 @@
580
580
  }();
581
581
  }));
582
582
  //#endregion
583
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toSource.js
583
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_toSource.js
584
584
  /**
585
585
  * Converts `func` to its source code.
586
586
  *
@@ -604,7 +604,7 @@
604
604
  funcToString$2 = Function.prototype.toString;
605
605
  }));
606
606
  //#endregion
607
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsNative.js
607
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIsNative.js
608
608
  /**
609
609
  * The base implementation of `_.isNative` without bad shim checks.
610
610
  *
@@ -632,7 +632,7 @@
632
632
  reIsNative = RegExp("^" + funcToString$1.call(hasOwnProperty$13).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$");
633
633
  }));
634
634
  //#endregion
635
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getValue.js
635
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getValue.js
636
636
  /**
637
637
  * Gets the value at `key` of `object`.
638
638
  *
@@ -646,7 +646,7 @@
646
646
  }
647
647
  var init__getValue = __esmMin((() => {}));
648
648
  //#endregion
649
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getNative.js
649
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getNative.js
650
650
  /**
651
651
  * Gets the native function at `key` of `object`.
652
652
  *
@@ -664,7 +664,7 @@
664
664
  init__getValue();
665
665
  }));
666
666
  //#endregion
667
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_WeakMap.js
667
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_WeakMap.js
668
668
  var WeakMap;
669
669
  var init__WeakMap = __esmMin((() => {
670
670
  init__getNative();
@@ -672,7 +672,7 @@
672
672
  WeakMap = getNative(root$1, "WeakMap");
673
673
  }));
674
674
  //#endregion
675
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseCreate.js
675
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseCreate.js
676
676
  var objectCreate, baseCreate;
677
677
  var init__baseCreate = __esmMin((() => {
678
678
  init_isObject();
@@ -690,7 +690,7 @@
690
690
  }();
691
691
  }));
692
692
  //#endregion
693
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_apply.js
693
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_apply.js
694
694
  /**
695
695
  * A faster alternative to `Function#apply`, this function invokes `func`
696
696
  * with the `this` binding of `thisArg` and the arguments of `args`.
@@ -712,7 +712,7 @@
712
712
  }
713
713
  var init__apply = __esmMin((() => {}));
714
714
  //#endregion
715
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/noop.js
715
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/noop.js
716
716
  /**
717
717
  * This method returns `undefined`.
718
718
  *
@@ -728,7 +728,7 @@
728
728
  function noop() {}
729
729
  var init_noop = __esmMin((() => {}));
730
730
  //#endregion
731
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copyArray.js
731
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_copyArray.js
732
732
  /**
733
733
  * Copies the values of `source` to `array`.
734
734
  *
@@ -745,7 +745,7 @@
745
745
  }
746
746
  var init__copyArray = __esmMin((() => {}));
747
747
  //#endregion
748
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_shortOut.js
748
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_shortOut.js
749
749
  /**
750
750
  * Creates a function that'll short out and invoke `identity` instead
751
751
  * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`
@@ -773,7 +773,7 @@
773
773
  nativeNow = Date.now;
774
774
  }));
775
775
  //#endregion
776
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/constant.js
776
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/constant.js
777
777
  /**
778
778
  * Creates a function that returns `value`.
779
779
  *
@@ -800,7 +800,7 @@
800
800
  }
801
801
  var init_constant = __esmMin((() => {}));
802
802
  //#endregion
803
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_defineProperty.js
803
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_defineProperty.js
804
804
  var defineProperty;
805
805
  var init__defineProperty = __esmMin((() => {
806
806
  init__getNative();
@@ -813,7 +813,7 @@
813
813
  }();
814
814
  }));
815
815
  //#endregion
816
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSetToString.js
816
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseSetToString.js
817
817
  var baseSetToString;
818
818
  var init__baseSetToString = __esmMin((() => {
819
819
  init_constant();
@@ -829,7 +829,7 @@
829
829
  };
830
830
  }));
831
831
  //#endregion
832
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToString.js
832
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_setToString.js
833
833
  var setToString;
834
834
  var init__setToString = __esmMin((() => {
835
835
  init__baseSetToString();
@@ -837,7 +837,7 @@
837
837
  setToString = shortOut(baseSetToString);
838
838
  }));
839
839
  //#endregion
840
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayEach.js
840
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_arrayEach.js
841
841
  /**
842
842
  * A specialized version of `_.forEach` for arrays without support for
843
843
  * iteratee shorthands.
@@ -854,7 +854,7 @@
854
854
  }
855
855
  var init__arrayEach = __esmMin((() => {}));
856
856
  //#endregion
857
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseFindIndex.js
857
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseFindIndex.js
858
858
  /**
859
859
  * The base implementation of `_.findIndex` and `_.findLastIndex` without
860
860
  * support for iteratee shorthands.
@@ -873,7 +873,7 @@
873
873
  }
874
874
  var init__baseFindIndex = __esmMin((() => {}));
875
875
  //#endregion
876
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsNaN.js
876
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIsNaN.js
877
877
  /**
878
878
  * The base implementation of `_.isNaN` without support for number objects.
879
879
  *
@@ -886,7 +886,7 @@
886
886
  }
887
887
  var init__baseIsNaN = __esmMin((() => {}));
888
888
  //#endregion
889
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_strictIndexOf.js
889
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_strictIndexOf.js
890
890
  /**
891
891
  * A specialized version of `_.indexOf` which performs strict equality
892
892
  * comparisons of values, i.e. `===`.
@@ -904,7 +904,7 @@
904
904
  }
905
905
  var init__strictIndexOf = __esmMin((() => {}));
906
906
  //#endregion
907
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIndexOf.js
907
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIndexOf.js
908
908
  /**
909
909
  * The base implementation of `_.indexOf` without `fromIndex` bounds checks.
910
910
  *
@@ -923,7 +923,7 @@
923
923
  init__strictIndexOf();
924
924
  }));
925
925
  //#endregion
926
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayIncludes.js
926
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_arrayIncludes.js
927
927
  /**
928
928
  * A specialized version of `_.includes` for arrays without support for
929
929
  * specifying an index to search from.
@@ -940,7 +940,7 @@
940
940
  init__baseIndexOf();
941
941
  }));
942
942
  //#endregion
943
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIndex.js
943
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_isIndex.js
944
944
  /**
945
945
  * Checks if `value` is a valid array-like index.
946
946
  *
@@ -960,7 +960,7 @@
960
960
  reIsUint = /^(?:0|[1-9]\d*)$/;
961
961
  }));
962
962
  //#endregion
963
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssignValue.js
963
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseAssignValue.js
964
964
  /**
965
965
  * The base implementation of `assignValue` and `assignMergeValue` without
966
966
  * value checks.
@@ -983,7 +983,7 @@
983
983
  init__defineProperty();
984
984
  }));
985
985
  //#endregion
986
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/eq.js
986
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/eq.js
987
987
  /**
988
988
  * Performs a
989
989
  * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
@@ -1021,7 +1021,7 @@
1021
1021
  }
1022
1022
  var init_eq = __esmMin((() => {}));
1023
1023
  //#endregion
1024
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assignValue.js
1024
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_assignValue.js
1025
1025
  /**
1026
1026
  * Assigns `value` to `key` of `object` if the existing value is not equivalent
1027
1027
  * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
@@ -1043,7 +1043,7 @@
1043
1043
  hasOwnProperty$12 = Object.prototype.hasOwnProperty;
1044
1044
  }));
1045
1045
  //#endregion
1046
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copyObject.js
1046
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_copyObject.js
1047
1047
  /**
1048
1048
  * Copies properties of `source` to `object`.
1049
1049
  *
@@ -1072,7 +1072,7 @@
1072
1072
  init__baseAssignValue();
1073
1073
  }));
1074
1074
  //#endregion
1075
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overRest.js
1075
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_overRest.js
1076
1076
  /**
1077
1077
  * A specialized version of `baseRest` which transforms the rest array.
1078
1078
  *
@@ -1100,7 +1100,7 @@
1100
1100
  nativeMax$1 = Math.max;
1101
1101
  }));
1102
1102
  //#endregion
1103
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseRest.js
1103
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseRest.js
1104
1104
  /**
1105
1105
  * The base implementation of `_.rest` which doesn't validate or coerce arguments.
1106
1106
  *
@@ -1118,7 +1118,7 @@
1118
1118
  init__setToString();
1119
1119
  }));
1120
1120
  //#endregion
1121
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isLength.js
1121
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isLength.js
1122
1122
  /**
1123
1123
  * Checks if `value` is a valid array-like length.
1124
1124
  *
@@ -1153,7 +1153,7 @@
1153
1153
  MAX_SAFE_INTEGER = 9007199254740991;
1154
1154
  }));
1155
1155
  //#endregion
1156
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArrayLike.js
1156
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isArrayLike.js
1157
1157
  /**
1158
1158
  * Checks if `value` is array-like. A value is considered array-like if it's
1159
1159
  * not a function and has a `value.length` that's an integer greater than or
@@ -1187,7 +1187,7 @@
1187
1187
  init_isLength();
1188
1188
  }));
1189
1189
  //#endregion
1190
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIterateeCall.js
1190
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_isIterateeCall.js
1191
1191
  /**
1192
1192
  * Checks if the given arguments are from an iteratee call.
1193
1193
  *
@@ -1211,7 +1211,7 @@
1211
1211
  init_isObject();
1212
1212
  }));
1213
1213
  //#endregion
1214
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createAssigner.js
1214
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_createAssigner.js
1215
1215
  /**
1216
1216
  * Creates a function like `_.assign`.
1217
1217
  *
@@ -1240,7 +1240,7 @@
1240
1240
  init__isIterateeCall();
1241
1241
  }));
1242
1242
  //#endregion
1243
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isPrototype.js
1243
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_isPrototype.js
1244
1244
  /**
1245
1245
  * Checks if `value` is likely a prototype object.
1246
1246
  *
@@ -1257,7 +1257,7 @@
1257
1257
  objectProto$2 = Object.prototype;
1258
1258
  }));
1259
1259
  //#endregion
1260
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTimes.js
1260
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseTimes.js
1261
1261
  /**
1262
1262
  * The base implementation of `_.times` without support for iteratee shorthands
1263
1263
  * or max array length checks.
@@ -1274,7 +1274,7 @@
1274
1274
  }
1275
1275
  var init__baseTimes = __esmMin((() => {}));
1276
1276
  //#endregion
1277
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsArguments.js
1277
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIsArguments.js
1278
1278
  /**
1279
1279
  * The base implementation of `_.isArguments`.
1280
1280
  *
@@ -1292,7 +1292,7 @@
1292
1292
  argsTag$3 = "[object Arguments]";
1293
1293
  }));
1294
1294
  //#endregion
1295
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArguments.js
1295
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isArguments.js
1296
1296
  var objectProto$1, hasOwnProperty$11, propertyIsEnumerable$1, isArguments;
1297
1297
  var init_isArguments = __esmMin((() => {
1298
1298
  init__baseIsArguments();
@@ -1307,7 +1307,7 @@
1307
1307
  };
1308
1308
  }));
1309
1309
  //#endregion
1310
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubFalse.js
1310
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/stubFalse.js
1311
1311
  /**
1312
1312
  * This method returns `false`.
1313
1313
  *
@@ -1326,7 +1326,7 @@
1326
1326
  }
1327
1327
  var init_stubFalse = __esmMin((() => {}));
1328
1328
  //#endregion
1329
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isBuffer.js
1329
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isBuffer.js
1330
1330
  var freeExports$2, freeModule$2, Buffer$2, isBuffer;
1331
1331
  var init_isBuffer = __esmMin((() => {
1332
1332
  init__root();
@@ -1337,7 +1337,7 @@
1337
1337
  isBuffer = (Buffer$2 ? Buffer$2.isBuffer : void 0) || stubFalse;
1338
1338
  }));
1339
1339
  //#endregion
1340
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsTypedArray.js
1340
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIsTypedArray.js
1341
1341
  /**
1342
1342
  * The base implementation of `_.isTypedArray` without Node.js optimizations.
1343
1343
  *
@@ -1382,7 +1382,7 @@
1382
1382
  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$4] = typedArrayTags[regexpTag$3] = typedArrayTags[setTag$6] = typedArrayTags[stringTag$3] = typedArrayTags[weakMapTag$2] = false;
1383
1383
  }));
1384
1384
  //#endregion
1385
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseUnary.js
1385
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseUnary.js
1386
1386
  /**
1387
1387
  * The base implementation of `_.unary` without support for storing metadata.
1388
1388
  *
@@ -1397,7 +1397,7 @@
1397
1397
  }
1398
1398
  var init__baseUnary = __esmMin((() => {}));
1399
1399
  //#endregion
1400
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nodeUtil.js
1400
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_nodeUtil.js
1401
1401
  var freeExports$1, freeModule$1, freeProcess, nodeUtil;
1402
1402
  var init__nodeUtil = __esmMin((() => {
1403
1403
  init__freeGlobal();
@@ -1413,7 +1413,7 @@
1413
1413
  }();
1414
1414
  }));
1415
1415
  //#endregion
1416
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isTypedArray.js
1416
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isTypedArray.js
1417
1417
  var nodeIsTypedArray, isTypedArray;
1418
1418
  var init_isTypedArray = __esmMin((() => {
1419
1419
  init__baseIsTypedArray();
@@ -1423,7 +1423,7 @@
1423
1423
  isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
1424
1424
  }));
1425
1425
  //#endregion
1426
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayLikeKeys.js
1426
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_arrayLikeKeys.js
1427
1427
  /**
1428
1428
  * Creates an array of the enumerable property names of the array-like `value`.
1429
1429
  *
@@ -1448,7 +1448,7 @@
1448
1448
  hasOwnProperty$10 = Object.prototype.hasOwnProperty;
1449
1449
  }));
1450
1450
  //#endregion
1451
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overArg.js
1451
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_overArg.js
1452
1452
  /**
1453
1453
  * Creates a unary function that invokes `func` with its argument transformed.
1454
1454
  *
@@ -1464,14 +1464,14 @@
1464
1464
  }
1465
1465
  var init__overArg = __esmMin((() => {}));
1466
1466
  //#endregion
1467
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeys.js
1467
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeys.js
1468
1468
  var nativeKeys;
1469
1469
  var init__nativeKeys = __esmMin((() => {
1470
1470
  init__overArg();
1471
1471
  nativeKeys = overArg(Object.keys, Object);
1472
1472
  }));
1473
1473
  //#endregion
1474
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeys.js
1474
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseKeys.js
1475
1475
  /**
1476
1476
  * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
1477
1477
  *
@@ -1492,7 +1492,7 @@
1492
1492
  hasOwnProperty$9 = Object.prototype.hasOwnProperty;
1493
1493
  }));
1494
1494
  //#endregion
1495
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keys.js
1495
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/keys.js
1496
1496
  /**
1497
1497
  * Creates an array of the own enumerable property names of `object`.
1498
1498
  *
@@ -1530,7 +1530,7 @@
1530
1530
  init_isArrayLike();
1531
1531
  }));
1532
1532
  //#endregion
1533
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeysIn.js
1533
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeysIn.js
1534
1534
  /**
1535
1535
  * This function is like
1536
1536
  * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
@@ -1547,7 +1547,7 @@
1547
1547
  }
1548
1548
  var init__nativeKeysIn = __esmMin((() => {}));
1549
1549
  //#endregion
1550
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeysIn.js
1550
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseKeysIn.js
1551
1551
  /**
1552
1552
  * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
1553
1553
  *
@@ -1569,7 +1569,7 @@
1569
1569
  hasOwnProperty$8 = Object.prototype.hasOwnProperty;
1570
1570
  }));
1571
1571
  //#endregion
1572
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keysIn.js
1572
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/keysIn.js
1573
1573
  /**
1574
1574
  * Creates an array of the own and inherited enumerable property names of `object`.
1575
1575
  *
@@ -1602,7 +1602,7 @@
1602
1602
  init_isArrayLike();
1603
1603
  }));
1604
1604
  //#endregion
1605
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKey.js
1605
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_isKey.js
1606
1606
  /**
1607
1607
  * Checks if `value` is a property name and not a property path.
1608
1608
  *
@@ -1625,14 +1625,14 @@
1625
1625
  reIsPlainProp = /^\w*$/;
1626
1626
  }));
1627
1627
  //#endregion
1628
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeCreate.js
1628
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_nativeCreate.js
1629
1629
  var nativeCreate;
1630
1630
  var init__nativeCreate = __esmMin((() => {
1631
1631
  init__getNative();
1632
1632
  nativeCreate = getNative(Object, "create");
1633
1633
  }));
1634
1634
  //#endregion
1635
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashClear.js
1635
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_hashClear.js
1636
1636
  /**
1637
1637
  * Removes all key-value entries from the hash.
1638
1638
  *
@@ -1648,7 +1648,7 @@
1648
1648
  init__nativeCreate();
1649
1649
  }));
1650
1650
  //#endregion
1651
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashDelete.js
1651
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_hashDelete.js
1652
1652
  /**
1653
1653
  * Removes `key` and its value from the hash.
1654
1654
  *
@@ -1666,7 +1666,7 @@
1666
1666
  }
1667
1667
  var init__hashDelete = __esmMin((() => {}));
1668
1668
  //#endregion
1669
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashGet.js
1669
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_hashGet.js
1670
1670
  /**
1671
1671
  * Gets the hash value for `key`.
1672
1672
  *
@@ -1691,7 +1691,7 @@
1691
1691
  hasOwnProperty$7 = Object.prototype.hasOwnProperty;
1692
1692
  }));
1693
1693
  //#endregion
1694
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashHas.js
1694
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_hashHas.js
1695
1695
  /**
1696
1696
  * Checks if a hash value for `key` exists.
1697
1697
  *
@@ -1711,7 +1711,7 @@
1711
1711
  hasOwnProperty$6 = Object.prototype.hasOwnProperty;
1712
1712
  }));
1713
1713
  //#endregion
1714
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashSet.js
1714
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_hashSet.js
1715
1715
  /**
1716
1716
  * Sets the hash `key` to `value`.
1717
1717
  *
@@ -1734,7 +1734,7 @@
1734
1734
  HASH_UNDEFINED$1 = "__lodash_hash_undefined__";
1735
1735
  }));
1736
1736
  //#endregion
1737
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Hash.js
1737
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_Hash.js
1738
1738
  /**
1739
1739
  * Creates a hash object.
1740
1740
  *
@@ -1763,7 +1763,7 @@
1763
1763
  Hash.prototype.set = hashSet;
1764
1764
  }));
1765
1765
  //#endregion
1766
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheClear.js
1766
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_listCacheClear.js
1767
1767
  /**
1768
1768
  * Removes all key-value entries from the list cache.
1769
1769
  *
@@ -1777,7 +1777,7 @@
1777
1777
  }
1778
1778
  var init__listCacheClear = __esmMin((() => {}));
1779
1779
  //#endregion
1780
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assocIndexOf.js
1780
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_assocIndexOf.js
1781
1781
  /**
1782
1782
  * Gets the index at which the `key` is found in `array` of key-value pairs.
1783
1783
  *
@@ -1795,7 +1795,7 @@
1795
1795
  init_eq();
1796
1796
  }));
1797
1797
  //#endregion
1798
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheDelete.js
1798
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_listCacheDelete.js
1799
1799
  /**
1800
1800
  * Removes `key` and its value from the list cache.
1801
1801
  *
@@ -1819,7 +1819,7 @@
1819
1819
  splice = Array.prototype.splice;
1820
1820
  }));
1821
1821
  //#endregion
1822
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheGet.js
1822
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_listCacheGet.js
1823
1823
  /**
1824
1824
  * Gets the list cache value for `key`.
1825
1825
  *
@@ -1837,7 +1837,7 @@
1837
1837
  init__assocIndexOf();
1838
1838
  }));
1839
1839
  //#endregion
1840
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheHas.js
1840
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_listCacheHas.js
1841
1841
  /**
1842
1842
  * Checks if a list cache value for `key` exists.
1843
1843
  *
@@ -1854,7 +1854,7 @@
1854
1854
  init__assocIndexOf();
1855
1855
  }));
1856
1856
  //#endregion
1857
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheSet.js
1857
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_listCacheSet.js
1858
1858
  /**
1859
1859
  * Sets the list cache `key` to `value`.
1860
1860
  *
@@ -1877,7 +1877,7 @@
1877
1877
  init__assocIndexOf();
1878
1878
  }));
1879
1879
  //#endregion
1880
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_ListCache.js
1880
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_ListCache.js
1881
1881
  /**
1882
1882
  * Creates an list cache object.
1883
1883
  *
@@ -1906,7 +1906,7 @@
1906
1906
  ListCache.prototype.set = listCacheSet;
1907
1907
  }));
1908
1908
  //#endregion
1909
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Map.js
1909
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_Map.js
1910
1910
  var Map$1;
1911
1911
  var init__Map = __esmMin((() => {
1912
1912
  init__getNative();
@@ -1914,7 +1914,7 @@
1914
1914
  Map$1 = getNative(root$1, "Map");
1915
1915
  }));
1916
1916
  //#endregion
1917
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheClear.js
1917
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheClear.js
1918
1918
  /**
1919
1919
  * Removes all key-value entries from the map.
1920
1920
  *
@@ -1936,7 +1936,7 @@
1936
1936
  init__Map();
1937
1937
  }));
1938
1938
  //#endregion
1939
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKeyable.js
1939
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_isKeyable.js
1940
1940
  /**
1941
1941
  * Checks if `value` is suitable for use as unique object key.
1942
1942
  *
@@ -1950,7 +1950,7 @@
1950
1950
  }
1951
1951
  var init__isKeyable = __esmMin((() => {}));
1952
1952
  //#endregion
1953
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getMapData.js
1953
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getMapData.js
1954
1954
  /**
1955
1955
  * Gets the data for `map`.
1956
1956
  *
@@ -1967,7 +1967,7 @@
1967
1967
  init__isKeyable();
1968
1968
  }));
1969
1969
  //#endregion
1970
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheDelete.js
1970
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheDelete.js
1971
1971
  /**
1972
1972
  * Removes `key` and its value from the map.
1973
1973
  *
@@ -1986,7 +1986,7 @@
1986
1986
  init__getMapData();
1987
1987
  }));
1988
1988
  //#endregion
1989
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheGet.js
1989
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheGet.js
1990
1990
  /**
1991
1991
  * Gets the map value for `key`.
1992
1992
  *
@@ -2003,7 +2003,7 @@
2003
2003
  init__getMapData();
2004
2004
  }));
2005
2005
  //#endregion
2006
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheHas.js
2006
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheHas.js
2007
2007
  /**
2008
2008
  * Checks if a map value for `key` exists.
2009
2009
  *
@@ -2020,7 +2020,7 @@
2020
2020
  init__getMapData();
2021
2021
  }));
2022
2022
  //#endregion
2023
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheSet.js
2023
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheSet.js
2024
2024
  /**
2025
2025
  * Sets the map `key` to `value`.
2026
2026
  *
@@ -2041,7 +2041,7 @@
2041
2041
  init__getMapData();
2042
2042
  }));
2043
2043
  //#endregion
2044
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_MapCache.js
2044
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_MapCache.js
2045
2045
  /**
2046
2046
  * Creates a map cache object to store key-value pairs.
2047
2047
  *
@@ -2070,7 +2070,7 @@
2070
2070
  MapCache.prototype.set = mapCacheSet;
2071
2071
  }));
2072
2072
  //#endregion
2073
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/memoize.js
2073
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/memoize.js
2074
2074
  /**
2075
2075
  * Creates a function that memoizes the result of `func`. If `resolver` is
2076
2076
  * provided, it determines the cache key for storing the result based on the
@@ -2134,7 +2134,7 @@
2134
2134
  memoize.Cache = MapCache;
2135
2135
  }));
2136
2136
  //#endregion
2137
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_memoizeCapped.js
2137
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_memoizeCapped.js
2138
2138
  /**
2139
2139
  * A specialized version of `_.memoize` which clears the memoized function's
2140
2140
  * cache when it exceeds `MAX_MEMOIZE_SIZE`.
@@ -2157,7 +2157,7 @@
2157
2157
  MAX_MEMOIZE_SIZE = 500;
2158
2158
  }));
2159
2159
  //#endregion
2160
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stringToPath.js
2160
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_stringToPath.js
2161
2161
  var rePropName, reEscapeChar, stringToPath;
2162
2162
  var init__stringToPath = __esmMin((() => {
2163
2163
  init__memoizeCapped();
@@ -2173,7 +2173,7 @@
2173
2173
  });
2174
2174
  }));
2175
2175
  //#endregion
2176
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toString.js
2176
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/toString.js
2177
2177
  /**
2178
2178
  * Converts `value` to a string. An empty string is returned for `null`
2179
2179
  * and `undefined` values. The sign of `-0` is preserved.
@@ -2202,7 +2202,7 @@
2202
2202
  init__baseToString();
2203
2203
  }));
2204
2204
  //#endregion
2205
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_castPath.js
2205
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_castPath.js
2206
2206
  /**
2207
2207
  * Casts `value` to a path array if it's not one.
2208
2208
  *
@@ -2222,7 +2222,7 @@
2222
2222
  init_toString();
2223
2223
  }));
2224
2224
  //#endregion
2225
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toKey.js
2225
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_toKey.js
2226
2226
  /**
2227
2227
  * Converts `value` to a string key if it's not a string or symbol.
2228
2228
  *
@@ -2241,7 +2241,7 @@
2241
2241
  INFINITY = Infinity;
2242
2242
  }));
2243
2243
  //#endregion
2244
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGet.js
2244
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseGet.js
2245
2245
  /**
2246
2246
  * The base implementation of `_.get` without support for default values.
2247
2247
  *
@@ -2261,7 +2261,7 @@
2261
2261
  init__toKey();
2262
2262
  }));
2263
2263
  //#endregion
2264
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/get.js
2264
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/get.js
2265
2265
  /**
2266
2266
  * Gets the value at `path` of `object`. If the resolved value is
2267
2267
  * `undefined`, the `defaultValue` is returned in its place.
@@ -2295,7 +2295,7 @@
2295
2295
  init__baseGet();
2296
2296
  }));
2297
2297
  //#endregion
2298
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayPush.js
2298
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_arrayPush.js
2299
2299
  /**
2300
2300
  * Appends the elements of `values` to `array`.
2301
2301
  *
@@ -2311,7 +2311,7 @@
2311
2311
  }
2312
2312
  var init__arrayPush = __esmMin((() => {}));
2313
2313
  //#endregion
2314
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isFlattenable.js
2314
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_isFlattenable.js
2315
2315
  /**
2316
2316
  * Checks if `value` is a flattenable `arguments` object or array.
2317
2317
  *
@@ -2330,7 +2330,7 @@
2330
2330
  spreadableSymbol = Symbol$1 ? Symbol$1.isConcatSpreadable : void 0;
2331
2331
  }));
2332
2332
  //#endregion
2333
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseFlatten.js
2333
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseFlatten.js
2334
2334
  /**
2335
2335
  * The base implementation of `_.flatten` with support for restricting flattening.
2336
2336
  *
@@ -2359,7 +2359,7 @@
2359
2359
  init__isFlattenable();
2360
2360
  }));
2361
2361
  //#endregion
2362
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/flatten.js
2362
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/flatten.js
2363
2363
  /**
2364
2364
  * Flattens `array` a single level deep.
2365
2365
  *
@@ -2381,7 +2381,7 @@
2381
2381
  init__baseFlatten();
2382
2382
  }));
2383
2383
  //#endregion
2384
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_flatRest.js
2384
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_flatRest.js
2385
2385
  /**
2386
2386
  * A specialized version of `baseRest` which flattens the rest array.
2387
2387
  *
@@ -2398,14 +2398,14 @@
2398
2398
  init__setToString();
2399
2399
  }));
2400
2400
  //#endregion
2401
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getPrototype.js
2401
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getPrototype.js
2402
2402
  var getPrototype;
2403
2403
  var init__getPrototype = __esmMin((() => {
2404
2404
  init__overArg();
2405
2405
  getPrototype = overArg(Object.getPrototypeOf, Object);
2406
2406
  }));
2407
2407
  //#endregion
2408
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isPlainObject.js
2408
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isPlainObject.js
2409
2409
  /**
2410
2410
  * Checks if `value` is a plain object, that is, an object created by the
2411
2411
  * `Object` constructor or one with a `[[Prototype]]` of `null`.
@@ -2454,7 +2454,7 @@
2454
2454
  objectCtorString = funcToString.call(Object);
2455
2455
  }));
2456
2456
  //#endregion
2457
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackClear.js
2457
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_stackClear.js
2458
2458
  /**
2459
2459
  * Removes all key-value entries from the stack.
2460
2460
  *
@@ -2470,7 +2470,7 @@
2470
2470
  init__ListCache();
2471
2471
  }));
2472
2472
  //#endregion
2473
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackDelete.js
2473
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_stackDelete.js
2474
2474
  /**
2475
2475
  * Removes `key` and its value from the stack.
2476
2476
  *
@@ -2487,7 +2487,7 @@
2487
2487
  }
2488
2488
  var init__stackDelete = __esmMin((() => {}));
2489
2489
  //#endregion
2490
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackGet.js
2490
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_stackGet.js
2491
2491
  /**
2492
2492
  * Gets the stack value for `key`.
2493
2493
  *
@@ -2502,7 +2502,7 @@
2502
2502
  }
2503
2503
  var init__stackGet = __esmMin((() => {}));
2504
2504
  //#endregion
2505
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackHas.js
2505
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_stackHas.js
2506
2506
  /**
2507
2507
  * Checks if a stack value for `key` exists.
2508
2508
  *
@@ -2517,7 +2517,7 @@
2517
2517
  }
2518
2518
  var init__stackHas = __esmMin((() => {}));
2519
2519
  //#endregion
2520
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackSet.js
2520
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_stackSet.js
2521
2521
  /**
2522
2522
  * Sets the stack `key` to `value`.
2523
2523
  *
@@ -2551,7 +2551,7 @@
2551
2551
  LARGE_ARRAY_SIZE$1 = 200;
2552
2552
  }));
2553
2553
  //#endregion
2554
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Stack.js
2554
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_Stack.js
2555
2555
  /**
2556
2556
  * Creates a stack cache object to store key-value pairs.
2557
2557
  *
@@ -2577,7 +2577,7 @@
2577
2577
  Stack.prototype.set = stackSet;
2578
2578
  }));
2579
2579
  //#endregion
2580
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssign.js
2580
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseAssign.js
2581
2581
  /**
2582
2582
  * The base implementation of `_.assign` without support for multiple sources
2583
2583
  * or `customizer` functions.
@@ -2595,7 +2595,7 @@
2595
2595
  init_keys();
2596
2596
  }));
2597
2597
  //#endregion
2598
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssignIn.js
2598
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseAssignIn.js
2599
2599
  /**
2600
2600
  * The base implementation of `_.assignIn` without support for multiple sources
2601
2601
  * or `customizer` functions.
@@ -2613,7 +2613,7 @@
2613
2613
  init_keysIn();
2614
2614
  }));
2615
2615
  //#endregion
2616
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneBuffer.js
2616
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_cloneBuffer.js
2617
2617
  /**
2618
2618
  * Creates a clone of `buffer`.
2619
2619
  *
@@ -2637,7 +2637,7 @@
2637
2637
  allocUnsafe = Buffer$1 ? Buffer$1.allocUnsafe : void 0;
2638
2638
  }));
2639
2639
  //#endregion
2640
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayFilter.js
2640
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_arrayFilter.js
2641
2641
  /**
2642
2642
  * A specialized version of `_.filter` for arrays without support for
2643
2643
  * iteratee shorthands.
@@ -2657,7 +2657,7 @@
2657
2657
  }
2658
2658
  var init__arrayFilter = __esmMin((() => {}));
2659
2659
  //#endregion
2660
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubArray.js
2660
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/stubArray.js
2661
2661
  /**
2662
2662
  * This method returns a new empty array.
2663
2663
  *
@@ -2681,7 +2681,7 @@
2681
2681
  }
2682
2682
  var init_stubArray = __esmMin((() => {}));
2683
2683
  //#endregion
2684
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getSymbols.js
2684
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getSymbols.js
2685
2685
  var propertyIsEnumerable, nativeGetSymbols, getSymbols;
2686
2686
  var init__getSymbols = __esmMin((() => {
2687
2687
  init__arrayFilter();
@@ -2697,7 +2697,7 @@
2697
2697
  };
2698
2698
  }));
2699
2699
  //#endregion
2700
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copySymbols.js
2700
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_copySymbols.js
2701
2701
  /**
2702
2702
  * Copies own symbols of `source` to `object`.
2703
2703
  *
@@ -2714,7 +2714,7 @@
2714
2714
  init__getSymbols();
2715
2715
  }));
2716
2716
  //#endregion
2717
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getSymbolsIn.js
2717
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getSymbolsIn.js
2718
2718
  var getSymbolsIn;
2719
2719
  var init__getSymbolsIn = __esmMin((() => {
2720
2720
  init__arrayPush();
@@ -2731,7 +2731,7 @@
2731
2731
  };
2732
2732
  }));
2733
2733
  //#endregion
2734
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copySymbolsIn.js
2734
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_copySymbolsIn.js
2735
2735
  /**
2736
2736
  * Copies own and inherited symbols of `source` to `object`.
2737
2737
  *
@@ -2748,7 +2748,7 @@
2748
2748
  init__getSymbolsIn();
2749
2749
  }));
2750
2750
  //#endregion
2751
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetAllKeys.js
2751
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseGetAllKeys.js
2752
2752
  /**
2753
2753
  * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
2754
2754
  * `keysFunc` and `symbolsFunc` to get the enumerable property names and
@@ -2769,7 +2769,7 @@
2769
2769
  init_isArray();
2770
2770
  }));
2771
2771
  //#endregion
2772
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeys.js
2772
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getAllKeys.js
2773
2773
  /**
2774
2774
  * Creates an array of own enumerable property names and symbols of `object`.
2775
2775
  *
@@ -2786,7 +2786,7 @@
2786
2786
  init_keys();
2787
2787
  }));
2788
2788
  //#endregion
2789
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeysIn.js
2789
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getAllKeysIn.js
2790
2790
  /**
2791
2791
  * Creates an array of own and inherited enumerable property names and
2792
2792
  * symbols of `object`.
@@ -2804,7 +2804,7 @@
2804
2804
  init_keysIn();
2805
2805
  }));
2806
2806
  //#endregion
2807
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_DataView.js
2807
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_DataView.js
2808
2808
  var DataView;
2809
2809
  var init__DataView = __esmMin((() => {
2810
2810
  init__getNative();
@@ -2812,7 +2812,7 @@
2812
2812
  DataView = getNative(root$1, "DataView");
2813
2813
  }));
2814
2814
  //#endregion
2815
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Promise.js
2815
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_Promise.js
2816
2816
  var Promise$1;
2817
2817
  var init__Promise = __esmMin((() => {
2818
2818
  init__getNative();
@@ -2820,7 +2820,7 @@
2820
2820
  Promise$1 = getNative(root$1, "Promise");
2821
2821
  }));
2822
2822
  //#endregion
2823
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Set.js
2823
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_Set.js
2824
2824
  var Set$1;
2825
2825
  var init__Set = __esmMin((() => {
2826
2826
  init__getNative();
@@ -2828,7 +2828,7 @@
2828
2828
  Set$1 = getNative(root$1, "Set");
2829
2829
  }));
2830
2830
  //#endregion
2831
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getTag.js
2831
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getTag.js
2832
2832
  var mapTag$5, objectTag$2, promiseTag, setTag$5, weakMapTag$1, dataViewTag$3, dataViewCtorString, mapCtorString, promiseCtorString, setCtorString, weakMapCtorString, getTag, _getTag_default;
2833
2833
  var init__getTag = __esmMin((() => {
2834
2834
  init__DataView();
@@ -2864,7 +2864,7 @@
2864
2864
  _getTag_default = getTag;
2865
2865
  }));
2866
2866
  //#endregion
2867
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneArray.js
2867
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_initCloneArray.js
2868
2868
  /**
2869
2869
  * Initializes an array clone.
2870
2870
  *
@@ -2885,14 +2885,14 @@
2885
2885
  hasOwnProperty$4 = Object.prototype.hasOwnProperty;
2886
2886
  }));
2887
2887
  //#endregion
2888
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Uint8Array.js
2888
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_Uint8Array.js
2889
2889
  var Uint8Array$1;
2890
2890
  var init__Uint8Array = __esmMin((() => {
2891
2891
  init__root();
2892
2892
  Uint8Array$1 = root$1.Uint8Array;
2893
2893
  }));
2894
2894
  //#endregion
2895
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneArrayBuffer.js
2895
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_cloneArrayBuffer.js
2896
2896
  /**
2897
2897
  * Creates a clone of `arrayBuffer`.
2898
2898
  *
@@ -2909,7 +2909,7 @@
2909
2909
  init__Uint8Array();
2910
2910
  }));
2911
2911
  //#endregion
2912
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneDataView.js
2912
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_cloneDataView.js
2913
2913
  /**
2914
2914
  * Creates a clone of `dataView`.
2915
2915
  *
@@ -2926,7 +2926,7 @@
2926
2926
  init__cloneArrayBuffer();
2927
2927
  }));
2928
2928
  //#endregion
2929
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneRegExp.js
2929
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_cloneRegExp.js
2930
2930
  /**
2931
2931
  * Creates a clone of `regexp`.
2932
2932
  *
@@ -2944,7 +2944,7 @@
2944
2944
  reFlags = /\w*$/;
2945
2945
  }));
2946
2946
  //#endregion
2947
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneSymbol.js
2947
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_cloneSymbol.js
2948
2948
  /**
2949
2949
  * Creates a clone of the `symbol` object.
2950
2950
  *
@@ -2962,7 +2962,7 @@
2962
2962
  symbolValueOf$1 = symbolProto$1 ? symbolProto$1.valueOf : void 0;
2963
2963
  }));
2964
2964
  //#endregion
2965
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneTypedArray.js
2965
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_cloneTypedArray.js
2966
2966
  /**
2967
2967
  * Creates a clone of `typedArray`.
2968
2968
  *
@@ -2979,7 +2979,7 @@
2979
2979
  init__cloneArrayBuffer();
2980
2980
  }));
2981
2981
  //#endregion
2982
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneByTag.js
2982
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_initCloneByTag.js
2983
2983
  /**
2984
2984
  * Initializes an object clone based on its `toStringTag`.
2985
2985
  *
@@ -3044,7 +3044,7 @@
3044
3044
  uint32Tag$1 = "[object Uint32Array]";
3045
3045
  }));
3046
3046
  //#endregion
3047
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneObject.js
3047
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_initCloneObject.js
3048
3048
  /**
3049
3049
  * Initializes an object clone.
3050
3050
  *
@@ -3061,7 +3061,7 @@
3061
3061
  init__isPrototype();
3062
3062
  }));
3063
3063
  //#endregion
3064
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsMap.js
3064
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIsMap.js
3065
3065
  /**
3066
3066
  * The base implementation of `_.isMap` without Node.js optimizations.
3067
3067
  *
@@ -3079,7 +3079,7 @@
3079
3079
  mapTag$3 = "[object Map]";
3080
3080
  }));
3081
3081
  //#endregion
3082
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isMap.js
3082
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isMap.js
3083
3083
  var nodeIsMap, isMap;
3084
3084
  var init_isMap = __esmMin((() => {
3085
3085
  init__baseIsMap();
@@ -3089,7 +3089,7 @@
3089
3089
  isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;
3090
3090
  }));
3091
3091
  //#endregion
3092
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsSet.js
3092
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIsSet.js
3093
3093
  /**
3094
3094
  * The base implementation of `_.isSet` without Node.js optimizations.
3095
3095
  *
@@ -3107,7 +3107,7 @@
3107
3107
  setTag$3 = "[object Set]";
3108
3108
  }));
3109
3109
  //#endregion
3110
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSet.js
3110
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isSet.js
3111
3111
  var nodeIsSet, isSet;
3112
3112
  var init_isSet = __esmMin((() => {
3113
3113
  init__baseIsSet();
@@ -3117,7 +3117,7 @@
3117
3117
  isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;
3118
3118
  }));
3119
3119
  //#endregion
3120
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseClone.js
3120
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseClone.js
3121
3121
  /**
3122
3122
  * The base implementation of `_.clone` and `_.cloneDeep` which tracks
3123
3123
  * traversed objects.
@@ -3232,7 +3232,7 @@
3232
3232
  cloneableTags[errorTag$1] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false;
3233
3233
  }));
3234
3234
  //#endregion
3235
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/cloneDeep.js
3235
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/cloneDeep.js
3236
3236
  /**
3237
3237
  * This method is like `_.clone` except that it recursively clones `value`.
3238
3238
  *
@@ -3261,7 +3261,7 @@
3261
3261
  CLONE_SYMBOLS_FLAG = 4;
3262
3262
  }));
3263
3263
  //#endregion
3264
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheAdd.js
3264
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_setCacheAdd.js
3265
3265
  /**
3266
3266
  * Adds `value` to the array cache.
3267
3267
  *
@@ -3281,7 +3281,7 @@
3281
3281
  HASH_UNDEFINED = "__lodash_hash_undefined__";
3282
3282
  }));
3283
3283
  //#endregion
3284
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheHas.js
3284
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_setCacheHas.js
3285
3285
  /**
3286
3286
  * Checks if `value` is in the array cache.
3287
3287
  *
@@ -3289,14 +3289,14 @@
3289
3289
  * @name has
3290
3290
  * @memberOf SetCache
3291
3291
  * @param {*} value The value to search for.
3292
- * @returns {number} Returns `true` if `value` is found, else `false`.
3292
+ * @returns {boolean} Returns `true` if `value` is found, else `false`.
3293
3293
  */
3294
3294
  function setCacheHas(value) {
3295
3295
  return this.__data__.has(value);
3296
3296
  }
3297
3297
  var init__setCacheHas = __esmMin((() => {}));
3298
3298
  //#endregion
3299
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_SetCache.js
3299
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_SetCache.js
3300
3300
  /**
3301
3301
  *
3302
3302
  * Creates an array cache object to store unique values.
@@ -3318,7 +3318,7 @@
3318
3318
  SetCache.prototype.has = setCacheHas;
3319
3319
  }));
3320
3320
  //#endregion
3321
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arraySome.js
3321
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_arraySome.js
3322
3322
  /**
3323
3323
  * A specialized version of `_.some` for arrays without support for iteratee
3324
3324
  * shorthands.
@@ -3336,7 +3336,7 @@
3336
3336
  }
3337
3337
  var init__arraySome = __esmMin((() => {}));
3338
3338
  //#endregion
3339
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cacheHas.js
3339
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_cacheHas.js
3340
3340
  /**
3341
3341
  * Checks if a `cache` value for `key` exists.
3342
3342
  *
@@ -3350,7 +3350,7 @@
3350
3350
  }
3351
3351
  var init__cacheHas = __esmMin((() => {}));
3352
3352
  //#endregion
3353
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalArrays.js
3353
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_equalArrays.js
3354
3354
  /**
3355
3355
  * A specialized version of `baseIsEqualDeep` for arrays with support for
3356
3356
  * partial deep comparisons.
@@ -3406,7 +3406,7 @@
3406
3406
  COMPARE_UNORDERED_FLAG$3 = 2;
3407
3407
  }));
3408
3408
  //#endregion
3409
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapToArray.js
3409
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_mapToArray.js
3410
3410
  /**
3411
3411
  * Converts `map` to its key-value pairs.
3412
3412
  *
@@ -3423,7 +3423,7 @@
3423
3423
  }
3424
3424
  var init__mapToArray = __esmMin((() => {}));
3425
3425
  //#endregion
3426
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToArray.js
3426
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_setToArray.js
3427
3427
  /**
3428
3428
  * Converts `set` to an array of its values.
3429
3429
  *
@@ -3440,7 +3440,7 @@
3440
3440
  }
3441
3441
  var init__setToArray = __esmMin((() => {}));
3442
3442
  //#endregion
3443
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalByTag.js
3443
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_equalByTag.js
3444
3444
  /**
3445
3445
  * A specialized version of `baseIsEqualDeep` for comparing objects of
3446
3446
  * the same `toStringTag`.
@@ -3514,7 +3514,7 @@
3514
3514
  symbolValueOf = symbolProto ? symbolProto.valueOf : void 0;
3515
3515
  }));
3516
3516
  //#endregion
3517
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalObjects.js
3517
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_equalObjects.js
3518
3518
  /**
3519
3519
  * A specialized version of `baseIsEqualDeep` for objects with support for
3520
3520
  * partial deep comparisons.
@@ -3568,7 +3568,7 @@
3568
3568
  hasOwnProperty$3 = Object.prototype.hasOwnProperty;
3569
3569
  }));
3570
3570
  //#endregion
3571
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqualDeep.js
3571
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIsEqualDeep.js
3572
3572
  /**
3573
3573
  * A specialized version of `baseIsEqual` for arrays and objects which performs
3574
3574
  * deep comparisons and tracks traversed objects enabling objects with circular
@@ -3626,7 +3626,7 @@
3626
3626
  hasOwnProperty$2 = Object.prototype.hasOwnProperty;
3627
3627
  }));
3628
3628
  //#endregion
3629
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqual.js
3629
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIsEqual.js
3630
3630
  /**
3631
3631
  * The base implementation of `_.isEqual` which supports partial comparisons
3632
3632
  * and tracks traversed objects.
@@ -3651,7 +3651,7 @@
3651
3651
  init_isObjectLike();
3652
3652
  }));
3653
3653
  //#endregion
3654
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsMatch.js
3654
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIsMatch.js
3655
3655
  /**
3656
3656
  * The base implementation of `_.isMatch` without support for iteratee shorthands.
3657
3657
  *
@@ -3691,7 +3691,7 @@
3691
3691
  COMPARE_UNORDERED_FLAG$1 = 2;
3692
3692
  }));
3693
3693
  //#endregion
3694
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isStrictComparable.js
3694
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_isStrictComparable.js
3695
3695
  /**
3696
3696
  * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.
3697
3697
  *
@@ -3707,7 +3707,7 @@
3707
3707
  init_isObject();
3708
3708
  }));
3709
3709
  //#endregion
3710
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getMatchData.js
3710
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getMatchData.js
3711
3711
  /**
3712
3712
  * Gets the property names, values, and compare flags of `object`.
3713
3713
  *
@@ -3732,7 +3732,7 @@
3732
3732
  init_keys();
3733
3733
  }));
3734
3734
  //#endregion
3735
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_matchesStrictComparable.js
3735
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_matchesStrictComparable.js
3736
3736
  /**
3737
3737
  * A specialized version of `matchesProperty` for source values suitable
3738
3738
  * for strict equality comparisons, i.e. `===`.
@@ -3750,7 +3750,7 @@
3750
3750
  }
3751
3751
  var init__matchesStrictComparable = __esmMin((() => {}));
3752
3752
  //#endregion
3753
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMatches.js
3753
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseMatches.js
3754
3754
  /**
3755
3755
  * The base implementation of `_.matches` which doesn't clone `source`.
3756
3756
  *
@@ -3771,7 +3771,7 @@
3771
3771
  init__matchesStrictComparable();
3772
3772
  }));
3773
3773
  //#endregion
3774
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseHasIn.js
3774
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseHasIn.js
3775
3775
  /**
3776
3776
  * The base implementation of `_.hasIn` without support for deep paths.
3777
3777
  *
@@ -3785,7 +3785,7 @@
3785
3785
  }
3786
3786
  var init__baseHasIn = __esmMin((() => {}));
3787
3787
  //#endregion
3788
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hasPath.js
3788
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_hasPath.js
3789
3789
  /**
3790
3790
  * Checks if `path` exists on `object`.
3791
3791
  *
@@ -3816,7 +3816,7 @@
3816
3816
  init__toKey();
3817
3817
  }));
3818
3818
  //#endregion
3819
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/hasIn.js
3819
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/hasIn.js
3820
3820
  /**
3821
3821
  * Checks if `path` is a direct or inherited property of `object`.
3822
3822
  *
@@ -3851,7 +3851,7 @@
3851
3851
  init__hasPath();
3852
3852
  }));
3853
3853
  //#endregion
3854
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMatchesProperty.js
3854
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseMatchesProperty.js
3855
3855
  /**
3856
3856
  * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.
3857
3857
  *
@@ -3880,7 +3880,7 @@
3880
3880
  COMPARE_UNORDERED_FLAG = 2;
3881
3881
  }));
3882
3882
  //#endregion
3883
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseProperty.js
3883
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseProperty.js
3884
3884
  /**
3885
3885
  * The base implementation of `_.property` without support for deep paths.
3886
3886
  *
@@ -3895,7 +3895,7 @@
3895
3895
  }
3896
3896
  var init__baseProperty = __esmMin((() => {}));
3897
3897
  //#endregion
3898
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePropertyDeep.js
3898
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_basePropertyDeep.js
3899
3899
  /**
3900
3900
  * A specialized version of `baseProperty` which supports deep paths.
3901
3901
  *
@@ -3912,7 +3912,7 @@
3912
3912
  init__baseGet();
3913
3913
  }));
3914
3914
  //#endregion
3915
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/property.js
3915
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/property.js
3916
3916
  /**
3917
3917
  * Creates a function that returns the value at `path` of a given object.
3918
3918
  *
@@ -3945,7 +3945,7 @@
3945
3945
  init__toKey();
3946
3946
  }));
3947
3947
  //#endregion
3948
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIteratee.js
3948
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIteratee.js
3949
3949
  /**
3950
3950
  * The base implementation of `_.iteratee`.
3951
3951
  *
@@ -3967,7 +3967,7 @@
3967
3967
  init_property();
3968
3968
  }));
3969
3969
  //#endregion
3970
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createBaseFor.js
3970
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_createBaseFor.js
3971
3971
  /**
3972
3972
  * Creates a base function for methods like `_.forIn` and `_.forOwn`.
3973
3973
  *
@@ -3987,14 +3987,14 @@
3987
3987
  }
3988
3988
  var init__createBaseFor = __esmMin((() => {}));
3989
3989
  //#endregion
3990
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseFor.js
3990
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseFor.js
3991
3991
  var baseFor;
3992
3992
  var init__baseFor = __esmMin((() => {
3993
3993
  init__createBaseFor();
3994
3994
  baseFor = createBaseFor();
3995
3995
  }));
3996
3996
  //#endregion
3997
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseForOwn.js
3997
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseForOwn.js
3998
3998
  /**
3999
3999
  * The base implementation of `_.forOwn` without support for iteratee shorthands.
4000
4000
  *
@@ -4011,7 +4011,7 @@
4011
4011
  init_keys();
4012
4012
  }));
4013
4013
  //#endregion
4014
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createBaseEach.js
4014
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_createBaseEach.js
4015
4015
  /**
4016
4016
  * Creates a `baseEach` or `baseEachRight` function.
4017
4017
  *
@@ -4033,7 +4033,7 @@
4033
4033
  init_isArrayLike();
4034
4034
  }));
4035
4035
  //#endregion
4036
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseEach.js
4036
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseEach.js
4037
4037
  var baseEach;
4038
4038
  var init__baseEach = __esmMin((() => {
4039
4039
  init__baseForOwn();
@@ -4041,7 +4041,7 @@
4041
4041
  baseEach = createBaseEach(baseForOwn);
4042
4042
  }));
4043
4043
  //#endregion
4044
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/now.js
4044
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/now.js
4045
4045
  var now;
4046
4046
  var init_now = __esmMin((() => {
4047
4047
  init__root();
@@ -4050,7 +4050,7 @@
4050
4050
  };
4051
4051
  }));
4052
4052
  //#endregion
4053
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/debounce.js
4053
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/debounce.js
4054
4054
  /**
4055
4055
  * Creates a debounced function that delays invoking `func` until after `wait`
4056
4056
  * milliseconds have elapsed since the last time the debounced function was
@@ -4184,7 +4184,7 @@
4184
4184
  nativeMin = Math.min;
4185
4185
  }));
4186
4186
  //#endregion
4187
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assignMergeValue.js
4187
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_assignMergeValue.js
4188
4188
  /**
4189
4189
  * This function is like `assignValue` except that it doesn't assign
4190
4190
  * `undefined` values.
@@ -4202,7 +4202,7 @@
4202
4202
  init_eq();
4203
4203
  }));
4204
4204
  //#endregion
4205
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArrayLikeObject.js
4205
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isArrayLikeObject.js
4206
4206
  /**
4207
4207
  * This method is like `_.isArrayLike` except that it also checks if `value`
4208
4208
  * is an object.
@@ -4236,7 +4236,7 @@
4236
4236
  init_isObjectLike();
4237
4237
  }));
4238
4238
  //#endregion
4239
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_safeGet.js
4239
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_safeGet.js
4240
4240
  /**
4241
4241
  * Gets the value at `key`, unless `key` is "__proto__" or "constructor".
4242
4242
  *
@@ -4252,7 +4252,7 @@
4252
4252
  }
4253
4253
  var init__safeGet = __esmMin((() => {}));
4254
4254
  //#endregion
4255
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toPlainObject.js
4255
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/toPlainObject.js
4256
4256
  /**
4257
4257
  * Converts `value` to a plain object flattening inherited enumerable string
4258
4258
  * keyed properties of `value` to own properties of the plain object.
@@ -4285,7 +4285,7 @@
4285
4285
  init_keysIn();
4286
4286
  }));
4287
4287
  //#endregion
4288
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMergeDeep.js
4288
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseMergeDeep.js
4289
4289
  /**
4290
4290
  * A specialized version of `baseMerge` for arrays and objects which performs
4291
4291
  * deep merges and tracks traversed objects enabling objects with circular
@@ -4352,7 +4352,7 @@
4352
4352
  init_toPlainObject();
4353
4353
  }));
4354
4354
  //#endregion
4355
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMerge.js
4355
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseMerge.js
4356
4356
  /**
4357
4357
  * The base implementation of `_.merge` without support for multiple sources.
4358
4358
  *
@@ -4386,7 +4386,7 @@
4386
4386
  init__safeGet();
4387
4387
  }));
4388
4388
  //#endregion
4389
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/mergeWith.js
4389
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/mergeWith.js
4390
4390
  var mergeWith;
4391
4391
  var init_mergeWith = __esmMin((() => {
4392
4392
  init__baseMerge();
@@ -4396,7 +4396,7 @@
4396
4396
  });
4397
4397
  }));
4398
4398
  //#endregion
4399
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayIncludesWith.js
4399
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_arrayIncludesWith.js
4400
4400
  /**
4401
4401
  * This function is like `arrayIncludes` except that it accepts a comparator.
4402
4402
  *
@@ -4413,7 +4413,7 @@
4413
4413
  }
4414
4414
  var init__arrayIncludesWith = __esmMin((() => {}));
4415
4415
  //#endregion
4416
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMap.js
4416
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseMap.js
4417
4417
  /**
4418
4418
  * The base implementation of `_.map` without support for iteratee shorthands.
4419
4419
  *
@@ -4434,7 +4434,7 @@
4434
4434
  init_isArrayLike();
4435
4435
  }));
4436
4436
  //#endregion
4437
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/map.js
4437
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/map.js
4438
4438
  /**
4439
4439
  * Creates an array of values by running each element in `collection` thru
4440
4440
  * `iteratee`. The iteratee is invoked with three arguments:
@@ -4487,7 +4487,7 @@
4487
4487
  init_isArray();
4488
4488
  }));
4489
4489
  //#endregion
4490
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseHas.js
4490
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseHas.js
4491
4491
  /**
4492
4492
  * The base implementation of `_.has` without support for deep paths.
4493
4493
  *
@@ -4504,7 +4504,7 @@
4504
4504
  hasOwnProperty$1 = Object.prototype.hasOwnProperty;
4505
4505
  }));
4506
4506
  //#endregion
4507
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/has.js
4507
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/has.js
4508
4508
  /**
4509
4509
  * Checks if `path` is a direct property of `object`.
4510
4510
  *
@@ -4540,7 +4540,7 @@
4540
4540
  init__hasPath();
4541
4541
  }));
4542
4542
  //#endregion
4543
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isEmpty.js
4543
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isEmpty.js
4544
4544
  /**
4545
4545
  * Checks if `value` is an empty object, collection, map, or set.
4546
4546
  *
@@ -4598,7 +4598,7 @@
4598
4598
  hasOwnProperty = Object.prototype.hasOwnProperty;
4599
4599
  }));
4600
4600
  //#endregion
4601
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isEqual.js
4601
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isEqual.js
4602
4602
  /**
4603
4603
  * Performs a deep comparison between two values to determine if they are
4604
4604
  * equivalent.
@@ -4634,7 +4634,7 @@
4634
4634
  init__baseIsEqual();
4635
4635
  }));
4636
4636
  //#endregion
4637
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSet.js
4637
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseSet.js
4638
4638
  /**
4639
4639
  * The base implementation of `_.set`.
4640
4640
  *
@@ -4670,7 +4670,7 @@
4670
4670
  init__toKey();
4671
4671
  }));
4672
4672
  //#endregion
4673
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePickBy.js
4673
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_basePickBy.js
4674
4674
  /**
4675
4675
  * The base implementation of `_.pickBy` without support for iteratee shorthands.
4676
4676
  *
@@ -4694,7 +4694,7 @@
4694
4694
  init__castPath();
4695
4695
  }));
4696
4696
  //#endregion
4697
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_basePick.js
4697
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_basePick.js
4698
4698
  /**
4699
4699
  * The base implementation of `_.pick` without support for individual
4700
4700
  * property identifiers.
@@ -4714,7 +4714,7 @@
4714
4714
  init_hasIn();
4715
4715
  }));
4716
4716
  //#endregion
4717
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/pick.js
4717
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/pick.js
4718
4718
  var pick;
4719
4719
  var init_pick = __esmMin((() => {
4720
4720
  init__basePick();
@@ -4724,7 +4724,7 @@
4724
4724
  });
4725
4725
  }));
4726
4726
  //#endregion
4727
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/throttle.js
4727
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/throttle.js
4728
4728
  /**
4729
4729
  * Creates a throttled function that only invokes `func` at most once per
4730
4730
  * every `wait` milliseconds. The throttled function comes with a `cancel`
@@ -4789,7 +4789,7 @@
4789
4789
  FUNC_ERROR_TEXT = "Expected a function";
4790
4790
  }));
4791
4791
  //#endregion
4792
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createSet.js
4792
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_createSet.js
4793
4793
  var createSet;
4794
4794
  var init__createSet = __esmMin((() => {
4795
4795
  init__Set();
@@ -4800,7 +4800,7 @@
4800
4800
  };
4801
4801
  }));
4802
4802
  //#endregion
4803
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseUniq.js
4803
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseUniq.js
4804
4804
  /**
4805
4805
  * The base implementation of `_.uniqBy` without support for iteratee shorthands.
4806
4806
  *
@@ -4848,7 +4848,7 @@
4848
4848
  LARGE_ARRAY_SIZE = 200;
4849
4849
  }));
4850
4850
  //#endregion
4851
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/uniq.js
4851
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/uniq.js
4852
4852
  /**
4853
4853
  * Creates a duplicate-free version of an array, using
4854
4854
  * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
@@ -4874,7 +4874,7 @@
4874
4874
  init__baseUniq();
4875
4875
  }));
4876
4876
  //#endregion
4877
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/lodash.js
4877
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/lodash.js
4878
4878
  var init_lodash = __esmMin((() => {
4879
4879
  init_isSymbol();
4880
4880
  init__baseToString();
@@ -4989,7 +4989,7 @@
4989
4989
  /**
4990
4990
  * @license
4991
4991
  * Lodash (Custom Build) <https://lodash.com/>
4992
- * Build: `lodash modularize exports="es" -o ./`
4992
+ * Build: `lodash modularize exports="es" --repo lodash/lodash#4.18.1 -o ./`
4993
4993
  * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
4994
4994
  * Released under MIT license <https://lodash.com/license>
4995
4995
  * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
@@ -5181,311 +5181,10 @@
5181
5181
  };
5182
5182
  }));
5183
5183
  //#endregion
5184
- //#region packages/editor/src/utils/props.ts
5185
- var arrayOptions, eqOptions, numberOptions, booleanOptions, getCondOpOptionsByFieldType, styleTabConfig, eventTabConfig, advancedTabConfig, displayTabConfig, fillConfig, removeStyleDisplayConfig;
5186
- var init_props = __esmMin((() => {
5187
- arrayOptions = [{
5188
- text: "包含",
5189
- value: "include"
5190
- }, {
5191
- text: "不包含",
5192
- value: "not_include"
5193
- }];
5194
- eqOptions = [{
5195
- text: "等于",
5196
- value: "="
5197
- }, {
5198
- text: "不等于",
5199
- value: "!="
5200
- }];
5201
- numberOptions = [
5202
- {
5203
- text: "大于",
5204
- value: ">"
5205
- },
5206
- {
5207
- text: "大于等于",
5208
- value: ">="
5209
- },
5210
- {
5211
- text: "小于",
5212
- value: "<"
5213
- },
5214
- {
5215
- text: "小于等于",
5216
- value: "<="
5217
- },
5218
- {
5219
- text: "在范围内",
5220
- value: "between"
5221
- },
5222
- {
5223
- text: "不在范围内",
5224
- value: "not_between"
5225
- }
5226
- ];
5227
- booleanOptions = [{
5228
- text: "是",
5229
- value: "is"
5230
- }, {
5231
- text: "不是",
5232
- value: "not"
5233
- }];
5234
- getCondOpOptionsByFieldType = (type) => {
5235
- if (type === "array") return arrayOptions;
5236
- if (type === "boolean" || type === "null") return booleanOptions;
5237
- if (type === "number") return [...eqOptions, ...numberOptions];
5238
- if (type === "string") return [...arrayOptions, ...eqOptions];
5239
- return [
5240
- ...arrayOptions,
5241
- ...eqOptions,
5242
- ...numberOptions
5243
- ];
5244
- };
5245
- styleTabConfig = {
5246
- title: "样式",
5247
- lazy: true,
5248
- display: ({ services }) => !(services?.uiService?.get("showStylePanel") ?? true),
5249
- items: [{
5250
- name: "style",
5251
- labelWidth: "100px",
5252
- type: "style-setter",
5253
- items: [{ names: [
5254
- "display",
5255
- "flexDirection",
5256
- "justifyContent",
5257
- "alignItems",
5258
- "flexWrap",
5259
- "marginTop",
5260
- "marginRight",
5261
- "marginBottom",
5262
- "marginLeft",
5263
- "paddingTop",
5264
- "paddingRight",
5265
- "paddingBottom",
5266
- "paddingLeft",
5267
- "width",
5268
- "height",
5269
- "overflow",
5270
- "fontSize",
5271
- "lineHeight",
5272
- "fontWeight",
5273
- "color",
5274
- "textAlign",
5275
- "backgroundColor",
5276
- "backgroundImage",
5277
- "backgroundSize",
5278
- "backgroundPosition",
5279
- "backgroundRepeat",
5280
- "position",
5281
- "zIndex",
5282
- "top",
5283
- "right",
5284
- "bottom",
5285
- "left",
5286
- "borderRadius",
5287
- "borderTopWidth",
5288
- "borderTopStyle",
5289
- "borderTopColor",
5290
- "borderRightColor",
5291
- "borderRightWidth",
5292
- "borderRightStyle",
5293
- "borderRightColor",
5294
- "borderBottomWidth",
5295
- "borderBottomStyle",
5296
- "borderBottomColor",
5297
- "borderLeftStyle",
5298
- "borderLeftWidth",
5299
- "borderLeftColor",
5300
- "borderWidth",
5301
- "borderStyle",
5302
- "borderColor",
5303
- "opacity"
5304
- ] }, {
5305
- name: "transform",
5306
- defaultValue: () => ({})
5307
- }]
5308
- }]
5309
- };
5310
- eventTabConfig = {
5311
- title: "事件",
5312
- lazy: true,
5313
- items: [{
5314
- name: "events",
5315
- src: "component",
5316
- labelWidth: "100px",
5317
- type: "event-select",
5318
- rules: [{ typeMatch: true }]
5319
- }]
5320
- };
5321
- advancedTabConfig = {
5322
- title: "高级",
5323
- lazy: true,
5324
- items: [
5325
- {
5326
- name: _tmagic_core.NODE_DISABLE_CODE_BLOCK_KEY,
5327
- text: "禁用代码块",
5328
- type: "switch",
5329
- labelPosition: "left",
5330
- defaultValue: false,
5331
- extra: "开启后,配置的代码块将不会被执行"
5332
- },
5333
- {
5334
- name: _tmagic_core.NODE_DISABLE_DATA_SOURCE_KEY,
5335
- text: "禁用数据源",
5336
- type: "switch",
5337
- labelPosition: "left",
5338
- defaultValue: false,
5339
- extra: "开启后,组件内配置的数据源相关配置将不会被编译,显隐条件将失效"
5340
- },
5341
- {
5342
- name: "created",
5343
- text: "Created",
5344
- labelPosition: "top",
5345
- type: "code-select",
5346
- titleExtra: "组件初始化时执行",
5347
- rules: [{
5348
- typeMatch: true,
5349
- trigger: "change"
5350
- }, { validator: ({ value, callback }) => {
5351
- if (value && value.hookType !== _tmagic_core.HookType.CODE) return callback("hookType 必须是 code");
5352
- callback();
5353
- } }]
5354
- },
5355
- {
5356
- name: "mounted",
5357
- text: "Mounted",
5358
- labelPosition: "top",
5359
- type: "code-select",
5360
- titleExtra: "组件挂载到dom时执行",
5361
- rules: [{
5362
- typeMatch: true,
5363
- trigger: "change"
5364
- }, { validator: ({ value, callback }) => {
5365
- if (value && value.hookType !== _tmagic_core.HookType.CODE) return callback("hookType 必须是 code");
5366
- callback();
5367
- } }]
5368
- },
5369
- {
5370
- name: "display",
5371
- text: "Display",
5372
- titleExtra: "控制组件是否渲染,关系的代码块返回值为false时不渲染",
5373
- labelPosition: "top",
5374
- type: "code-select",
5375
- rules: [{
5376
- typeMatch: true,
5377
- trigger: "change"
5378
- }, { validator: ({ value, callback }) => {
5379
- if (value && value.hookType !== _tmagic_core.HookType.CODE) return callback("hookType 必须是 code");
5380
- callback();
5381
- } }]
5382
- }
5383
- ]
5384
- };
5385
- displayTabConfig = {
5386
- title: "显示条件",
5387
- display: (_state, { model }) => model.type !== "page",
5388
- items: [
5389
- {
5390
- name: _tmagic_core.NODE_CONDS_RESULT_KEY,
5391
- type: "select",
5392
- text: "条件成立时",
5393
- defaultValue: false,
5394
- options: [{
5395
- text: "显示",
5396
- value: false
5397
- }, {
5398
- text: "隐藏",
5399
- value: true
5400
- }],
5401
- extra: (_state, { model }) => `条件成立时${model[_tmagic_core.NODE_CONDS_RESULT_KEY] ? "隐藏" : "显示"},不成立时${model[_tmagic_core.NODE_CONDS_RESULT_KEY] ? "显示" : "隐藏"};<br />同一条件组内的所有条件配置同时成立时表示该条件组成立,任意一个条件组成立时表示条件成立(条件组内为且的关系,条件组间为或的关系);<br />条件为空时表示成立;`
5402
- },
5403
- {
5404
- text: "条件组配置",
5405
- static: true,
5406
- className: "display-conds-title"
5407
- },
5408
- {
5409
- type: "display-conds",
5410
- name: _tmagic_core.NODE_CONDS_KEY,
5411
- titlePrefix: "条件组",
5412
- fixed: "right",
5413
- operateColWidth: 112,
5414
- defaultValue: [],
5415
- rules: [{ typeMatch: true }]
5416
- }
5417
- ]
5418
- };
5419
- fillConfig = (config = [], { labelWidth = "80px", disabledDataSource = false, disabledCodeBlock = false } = {}) => {
5420
- const propsConfig = [];
5421
- if (!config.find((item) => "name" in item && item.name === "type")) propsConfig.push({
5422
- text: "type",
5423
- name: "type",
5424
- type: "hidden"
5425
- });
5426
- if (!config.find((item) => "name" in item && item.name === "id")) propsConfig.push({
5427
- name: "id",
5428
- text: "ID",
5429
- type: "text",
5430
- static: true,
5431
- append: {
5432
- type: "icon",
5433
- text: "https://vip.image.video.qpic.cn/vupload/20260615/36cf7e1781493669935.svg",
5434
- extra: "复制",
5435
- handler: (vm, { model }) => {
5436
- navigator.clipboard.writeText(`${model.id}`).then(() => {
5437
- _tmagic_design.tMagicMessage.success("已复制");
5438
- }).catch(() => {
5439
- _tmagic_design.tMagicMessage.error("复制失败");
5440
- });
5441
- }
5442
- }
5443
- });
5444
- if (!config.find((item) => "name" in item && item.name === "name")) propsConfig.push({
5445
- name: "name",
5446
- text: "组件名称"
5447
- });
5448
- const noCodeAdvancedTabItems = advancedTabConfig.items.filter((item) => "type" in item && item.type !== "code-select");
5449
- if (noCodeAdvancedTabItems.length > 0 && disabledCodeBlock) advancedTabConfig.items = noCodeAdvancedTabItems;
5450
- const tabConfig = {
5451
- type: "tab",
5452
- labelWidth,
5453
- className: "magic-right-panel-tabs-top",
5454
- items: [
5455
- {
5456
- title: "属性",
5457
- items: [...propsConfig, ...config]
5458
- },
5459
- { ...styleTabConfig },
5460
- { ...eventTabConfig }
5461
- ]
5462
- };
5463
- if (!disabledCodeBlock) tabConfig.items.push({ ...advancedTabConfig });
5464
- else if (noCodeAdvancedTabItems.length > 0) tabConfig.items.push({ ...advancedTabConfig });
5465
- if (!disabledDataSource) tabConfig.items.push({ ...displayTabConfig });
5466
- return [tabConfig];
5467
- };
5468
- removeStyleDisplayConfig = (formConfig) => formConfig.map((item) => {
5469
- if (!("type" in item)) return item;
5470
- if (item?.type !== "tab" || !Array.isArray(item.items)) return item;
5471
- return {
5472
- ...item,
5473
- items: item.items.map((tabPane) => {
5474
- if (tabPane?.title !== "样式" || !Array.isArray(tabPane.items)) return tabPane;
5475
- return {
5476
- ...tabPane,
5477
- display: true
5478
- };
5479
- })
5480
- };
5481
- });
5482
- }));
5483
- //#endregion
5484
5184
  //#region packages/editor/src/hooks/use-compare-form.ts
5485
5185
  var useCompareForm;
5486
5186
  var init_use_compare_form = __esmMin((() => {
5487
5187
  init_code_block();
5488
- init_props();
5489
5188
  useCompareForm = (props) => {
5490
5189
  (0, vue.provide)("services", props.services);
5491
5190
  const config = (0, vue.ref)([]);
@@ -5529,7 +5228,7 @@
5529
5228
  switch (props.category) {
5530
5229
  case "node":
5531
5230
  if (!props.type) return [];
5532
- return removeStyleDisplayConfig(await props.services.propsService.getPropsConfig(props.type, { node: props.value }));
5231
+ return props.services.propsService.getPropsConfig(props.type, { node: props.value });
5533
5232
  case "data-source": return props.services.dataSourceService.getFormConfig(props.type || "base").map((item) => "type" in item && item.type === "tab" ? {
5534
5233
  ...item,
5535
5234
  active: "fields"
@@ -5701,9 +5400,294 @@
5701
5400
  }
5702
5401
  };
5703
5402
  //#endregion
5403
+ //#region packages/editor/src/utils/props.ts
5404
+ var arrayOptions = [{
5405
+ text: "包含",
5406
+ value: "include"
5407
+ }, {
5408
+ text: "不包含",
5409
+ value: "not_include"
5410
+ }];
5411
+ var eqOptions = [{
5412
+ text: "等于",
5413
+ value: "="
5414
+ }, {
5415
+ text: "不等于",
5416
+ value: "!="
5417
+ }];
5418
+ var numberOptions = [
5419
+ {
5420
+ text: "大于",
5421
+ value: ">"
5422
+ },
5423
+ {
5424
+ text: "大于等于",
5425
+ value: ">="
5426
+ },
5427
+ {
5428
+ text: "小于",
5429
+ value: "<"
5430
+ },
5431
+ {
5432
+ text: "小于等于",
5433
+ value: "<="
5434
+ },
5435
+ {
5436
+ text: "在范围内",
5437
+ value: "between"
5438
+ },
5439
+ {
5440
+ text: "不在范围内",
5441
+ value: "not_between"
5442
+ }
5443
+ ];
5444
+ var booleanOptions = [{
5445
+ text: "是",
5446
+ value: "is"
5447
+ }, {
5448
+ text: "不是",
5449
+ value: "not"
5450
+ }];
5451
+ /** 按字段类型返回条件运算符选项(UI 与 typeMatch 校验共用) */
5452
+ var getCondOpOptionsByFieldType = (type) => {
5453
+ if (type === "array") return arrayOptions;
5454
+ if (type === "boolean" || type === "null") return booleanOptions;
5455
+ if (type === "number") return [...eqOptions, ...numberOptions];
5456
+ if (type === "string") return [...arrayOptions, ...eqOptions];
5457
+ return [
5458
+ ...arrayOptions,
5459
+ ...eqOptions,
5460
+ ...numberOptions
5461
+ ];
5462
+ };
5463
+ var styleTabConfig = {
5464
+ title: "样式",
5465
+ display: ({ services }) => !(services?.uiService?.get("showStylePanel") ?? true),
5466
+ items: [{
5467
+ name: "style",
5468
+ labelWidth: "100px",
5469
+ type: "style-setter",
5470
+ items: [{ names: [
5471
+ "display",
5472
+ "flexDirection",
5473
+ "justifyContent",
5474
+ "alignItems",
5475
+ "flexWrap",
5476
+ "marginTop",
5477
+ "marginRight",
5478
+ "marginBottom",
5479
+ "marginLeft",
5480
+ "paddingTop",
5481
+ "paddingRight",
5482
+ "paddingBottom",
5483
+ "paddingLeft",
5484
+ "width",
5485
+ "height",
5486
+ "overflow",
5487
+ "fontSize",
5488
+ "lineHeight",
5489
+ "fontWeight",
5490
+ "color",
5491
+ "textAlign",
5492
+ "backgroundColor",
5493
+ "backgroundImage",
5494
+ "backgroundSize",
5495
+ "backgroundPosition",
5496
+ "backgroundRepeat",
5497
+ "position",
5498
+ "zIndex",
5499
+ "top",
5500
+ "right",
5501
+ "bottom",
5502
+ "left",
5503
+ "borderRadius",
5504
+ "borderTopWidth",
5505
+ "borderTopStyle",
5506
+ "borderTopColor",
5507
+ "borderRightColor",
5508
+ "borderRightWidth",
5509
+ "borderRightStyle",
5510
+ "borderRightColor",
5511
+ "borderBottomWidth",
5512
+ "borderBottomStyle",
5513
+ "borderBottomColor",
5514
+ "borderLeftStyle",
5515
+ "borderLeftWidth",
5516
+ "borderLeftColor",
5517
+ "borderWidth",
5518
+ "borderStyle",
5519
+ "borderColor",
5520
+ "opacity"
5521
+ ] }, {
5522
+ name: "transform",
5523
+ defaultValue: () => ({})
5524
+ }]
5525
+ }]
5526
+ };
5527
+ var eventTabConfig = {
5528
+ title: "事件",
5529
+ items: [{
5530
+ name: "events",
5531
+ src: "component",
5532
+ labelWidth: "100px",
5533
+ type: "event-select",
5534
+ rules: [{ typeMatch: true }]
5535
+ }]
5536
+ };
5537
+ var advancedTabConfig = {
5538
+ title: "高级",
5539
+ items: [
5540
+ {
5541
+ name: _tmagic_core.NODE_DISABLE_CODE_BLOCK_KEY,
5542
+ text: "禁用代码块",
5543
+ type: "switch",
5544
+ labelPosition: "left",
5545
+ defaultValue: false,
5546
+ extra: "开启后,配置的代码块将不会被执行"
5547
+ },
5548
+ {
5549
+ name: _tmagic_core.NODE_DISABLE_DATA_SOURCE_KEY,
5550
+ text: "禁用数据源",
5551
+ type: "switch",
5552
+ labelPosition: "left",
5553
+ defaultValue: false,
5554
+ extra: "开启后,组件内配置的数据源相关配置将不会被编译,显隐条件将失效"
5555
+ },
5556
+ {
5557
+ name: "created",
5558
+ text: "Created",
5559
+ labelPosition: "top",
5560
+ type: "code-select",
5561
+ titleExtra: "组件初始化时执行",
5562
+ rules: [{
5563
+ typeMatch: true,
5564
+ trigger: "change"
5565
+ }, { validator: ({ value, callback }) => {
5566
+ if (value && value.hookType !== _tmagic_core.HookType.CODE) return callback("hookType 必须是 code");
5567
+ callback();
5568
+ } }]
5569
+ },
5570
+ {
5571
+ name: "mounted",
5572
+ text: "Mounted",
5573
+ labelPosition: "top",
5574
+ type: "code-select",
5575
+ titleExtra: "组件挂载到dom时执行",
5576
+ rules: [{
5577
+ typeMatch: true,
5578
+ trigger: "change"
5579
+ }, { validator: ({ value, callback }) => {
5580
+ if (value && value.hookType !== _tmagic_core.HookType.CODE) return callback("hookType 必须是 code");
5581
+ callback();
5582
+ } }]
5583
+ },
5584
+ {
5585
+ name: "display",
5586
+ text: "Display",
5587
+ titleExtra: "控制组件是否渲染,关系的代码块返回值为false时不渲染",
5588
+ labelPosition: "top",
5589
+ type: "code-select",
5590
+ rules: [{
5591
+ typeMatch: true,
5592
+ trigger: "change"
5593
+ }, { validator: ({ value, callback }) => {
5594
+ if (value && value.hookType !== _tmagic_core.HookType.CODE) return callback("hookType 必须是 code");
5595
+ callback();
5596
+ } }]
5597
+ }
5598
+ ]
5599
+ };
5600
+ var displayTabConfig = {
5601
+ title: "显示条件",
5602
+ display: (_state, { model }) => model.type !== "page",
5603
+ items: [
5604
+ {
5605
+ name: _tmagic_core.NODE_CONDS_RESULT_KEY,
5606
+ type: "select",
5607
+ text: "条件成立时",
5608
+ defaultValue: false,
5609
+ options: [{
5610
+ text: "显示",
5611
+ value: false
5612
+ }, {
5613
+ text: "隐藏",
5614
+ value: true
5615
+ }],
5616
+ extra: (_state, { model }) => `条件成立时${model[_tmagic_core.NODE_CONDS_RESULT_KEY] ? "隐藏" : "显示"},不成立时${model[_tmagic_core.NODE_CONDS_RESULT_KEY] ? "显示" : "隐藏"};<br />同一条件组内的所有条件配置同时成立时表示该条件组成立,任意一个条件组成立时表示条件成立(条件组内为且的关系,条件组间为或的关系);<br />条件为空时表示成立;`
5617
+ },
5618
+ {
5619
+ text: "条件组配置",
5620
+ static: true,
5621
+ className: "display-conds-title"
5622
+ },
5623
+ {
5624
+ type: "display-conds",
5625
+ name: _tmagic_core.NODE_CONDS_KEY,
5626
+ titlePrefix: "条件组",
5627
+ fixed: "right",
5628
+ operateColWidth: 112,
5629
+ defaultValue: [],
5630
+ rules: [{ typeMatch: true }]
5631
+ }
5632
+ ]
5633
+ };
5634
+ /**
5635
+ * 统一为组件属性表单加上事件、高级、样式配置
5636
+ * @param config 组件属性配置
5637
+ * @returns Object
5638
+ */
5639
+ var fillConfig = (config = [], { labelWidth = "80px", disabledDataSource = false, disabledCodeBlock = false } = {}) => {
5640
+ const propsConfig = [];
5641
+ if (!config.find((item) => "name" in item && item.name === "type")) propsConfig.push({
5642
+ text: "type",
5643
+ name: "type",
5644
+ type: "hidden"
5645
+ });
5646
+ if (!config.find((item) => "name" in item && item.name === "id")) propsConfig.push({
5647
+ name: "id",
5648
+ text: "ID",
5649
+ type: "text",
5650
+ static: true,
5651
+ append: {
5652
+ type: "icon",
5653
+ text: "https://vip.image.video.qpic.cn/vupload/20260615/36cf7e1781493669935.svg",
5654
+ extra: "复制",
5655
+ handler: (vm, { model }) => {
5656
+ navigator.clipboard.writeText(`${model.id}`).then(() => {
5657
+ _tmagic_design.tMagicMessage.success("已复制");
5658
+ }).catch(() => {
5659
+ _tmagic_design.tMagicMessage.error("复制失败");
5660
+ });
5661
+ }
5662
+ }
5663
+ });
5664
+ if (!config.find((item) => "name" in item && item.name === "name")) propsConfig.push({
5665
+ name: "name",
5666
+ text: "组件名称"
5667
+ });
5668
+ const noCodeAdvancedTabItems = advancedTabConfig.items.filter((item) => "type" in item && item.type !== "code-select");
5669
+ if (noCodeAdvancedTabItems.length > 0 && disabledCodeBlock) advancedTabConfig.items = noCodeAdvancedTabItems;
5670
+ const tabConfig = {
5671
+ type: "tab",
5672
+ labelWidth,
5673
+ className: "magic-right-panel-tabs-top",
5674
+ items: [
5675
+ {
5676
+ title: "属性",
5677
+ items: [...propsConfig, ...config]
5678
+ },
5679
+ { ...styleTabConfig },
5680
+ { ...eventTabConfig }
5681
+ ]
5682
+ };
5683
+ if (!disabledCodeBlock) tabConfig.items.push({ ...advancedTabConfig });
5684
+ else if (noCodeAdvancedTabItems.length > 0) tabConfig.items.push({ ...advancedTabConfig });
5685
+ if (!disabledDataSource) tabConfig.items.push({ ...displayTabConfig });
5686
+ return [tabConfig];
5687
+ };
5688
+ //#endregion
5704
5689
  //#region packages/editor/src/services/props.ts
5705
5690
  init_lodash();
5706
- init_props();
5707
5691
  var canUsePluginMethods$8 = {
5708
5692
  async: [
5709
5693
  "setPropsConfig",
@@ -7363,6 +7347,8 @@
7363
7347
  init_lodash();
7364
7348
  init_type();
7365
7349
  init_editor();
7350
+ /** 历史插回时把记录的下标收敛到 [0, length],越界(含未记录)一律追加到末尾 */
7351
+ var clampIndex = (index, length) => typeof index === "number" && index >= 0 && index <= length ? index : length;
7366
7352
  /**
7367
7353
  * 把「变更前后节点快照」列表归一成 update 类型的 {@link StepDiffItem} 列表,供 {@link StepValue.diff} 使用。
7368
7354
  * `changeRecords` 来自 form 端的 propPath/value 列表,撤销/重做时只对这些 propPath 做局部更新;
@@ -7402,6 +7388,11 @@
7402
7388
  * 普通操作不会读取它,调用前由 *AndGetHistoryId 重置为 null。
7403
7389
  */
7404
7390
  lastPushedHistoryId = null;
7391
+ /**
7392
+ * 上一次 doAdd 的插入记忆:nodeId 为插入的节点,selectedId 为当时的选中节点。
7393
+ * 仅在选中节点未变化时复用(连续 add / doNotSelect / 批量粘贴),选中变化后自动失效,无需手动清理。
7394
+ */
7395
+ lastAdded = null;
7405
7396
  constructor() {
7406
7397
  super(canUsePluginMethods.async.map((methodName) => ({
7407
7398
  name: methodName,
@@ -7597,24 +7588,29 @@
7597
7588
  this.set("stage", null);
7598
7589
  this.set("highlightNode", null);
7599
7590
  }
7600
- async doAdd(node, parent) {
7591
+ async doAdd(node, parent, _options = {}) {
7601
7592
  const root = this.get("root");
7602
7593
  if (!root) throw new Error("root为空");
7603
7594
  const curNode = this.get("node");
7604
7595
  const stage = this.get("stage");
7605
7596
  if (!curNode) throw new Error("当前选中节点为空");
7606
7597
  if ((parent.type === _tmagic_core.NodeType.ROOT || curNode?.type === _tmagic_core.NodeType.ROOT) && !(0, _tmagic_utils.isPageOrFragment)(node)) throw new Error("app下不能添加组件");
7607
- if (parent.id !== curNode.id && !(0, _tmagic_utils.isPageOrFragment)(node)) {
7608
- const index = parent.items.indexOf(curNode);
7609
- parent.items?.splice(index + 1, 0, node);
7610
- } else parent.items?.push(node);
7598
+ const anchorId = this.lastAdded?.selectedId === curNode.id ? this.lastAdded.nodeId : curNode.id;
7599
+ const anchorIndex = (0, _tmagic_utils.isPageOrFragment)(node) ? -1 : Math.max(getNodeIndex(anchorId, parent), getNodeIndex(curNode.id, parent));
7600
+ const insertIndex = anchorIndex < 0 ? parent.items.length : anchorIndex + 1;
7601
+ parent.items.splice(insertIndex, 0, node);
7602
+ this.lastAdded = {
7603
+ selectedId: curNode.id,
7604
+ nodeId: node.id
7605
+ };
7611
7606
  const layout = await this.getLayout((0, vue.toRaw)(parent), node);
7612
7607
  node.style = getInitPositionStyle(node.style, layout);
7613
7608
  await stage?.add({
7614
7609
  config: cloneDeep$1(node),
7615
7610
  parent: cloneDeep$1(parent),
7616
7611
  parentId: parent.id,
7617
- root: cloneDeep$1(root)
7612
+ root: cloneDeep$1(root),
7613
+ index: insertIndex
7618
7614
  });
7619
7615
  const newStyle = fixNodePosition(node, parent, stage);
7620
7616
  if (newStyle && (newStyle.top !== node.style.top || newStyle.left !== node.style.left)) {
@@ -7632,14 +7628,12 @@
7632
7628
  * 向指点容器添加组件节点
7633
7629
  * @param addConfig 将要添加的组件节点配置
7634
7630
  * @param parent 要添加到的容器组件节点配置,如果不设置,默认为当前选中的组件的父节点
7635
- * @param options 可选配置
7636
- * @param options.doNotSelect 添加后是否不更新当前选中节点(默认 false,添加后会选中新增的节点)
7637
- * @param options.doNotSwitchPage 添加后是否不切换当前页面(默认 false;新增页面 / 跨页新增时为 true 会跳过会引发页面切换的选中操作)
7638
- * @param options.doNotPushHistory 是否不写入历史记录(默认 false)
7631
+ * @param options 可选配置,见 {@link DslOpOptions}
7639
7632
  * @returns 添加后的节点
7640
7633
  */
7641
- async add(addNode, parent, { doNotSelect = false, doNotSwitchPage = false, doNotPushHistory = false, historyDescription, historySource } = {}) {
7634
+ async add(addNode, parent, options = {}) {
7642
7635
  this.captureSelectionBeforeOp();
7636
+ const { doNotSelect = false, doNotSwitchPage = false, doNotPushHistory = false, historyDescription, historySource } = options;
7643
7637
  const stage = this.get("stage");
7644
7638
  const addNodes = [];
7645
7639
  if (!Array.isArray(addNode)) {
@@ -7647,13 +7641,13 @@
7647
7641
  if (!type) throw new Error("组件类型不能为空");
7648
7642
  addNodes.push({ ...(0, vue.toRaw)(await props_default.getPropsValue(type, config)) });
7649
7643
  } else addNodes.push(...addNode);
7650
- const newNodes = await Promise.all(addNodes.map((node) => {
7644
+ const newNodes = [];
7645
+ for (const node of addNodes) {
7651
7646
  const root = this.get("root");
7652
- if ((0, _tmagic_utils.isPageOrFragment)(node) && root) return this.doAdd(node, root);
7653
- const parentNode = parent ?? getAddParent(node);
7647
+ const parentNode = (0, _tmagic_utils.isPageOrFragment)(node) && root ? root : parent ?? getAddParent(node);
7654
7648
  if (!parentNode) throw new Error("未找到父元素");
7655
- return this.doAdd(node, parentNode);
7656
- }));
7649
+ newNodes.push(await this.doAdd(node, parentNode, options));
7650
+ }
7657
7651
  if (newNodes.length > 1) {
7658
7652
  const wouldSwitchPage = newNodes.some((n) => this.isOnDifferentPage(n));
7659
7653
  if (!doNotSelect && !(doNotSwitchPage && wouldSwitchPage)) {
@@ -7769,7 +7763,8 @@
7769
7763
  * @param options.doNotSwitchPage 删除后是否不切换当前页面(默认 false;删除页面 / 页面片段时为 true 会跳过自动切换到首个剩余页面)
7770
7764
  * @param options.doNotPushHistory 是否不写入历史记录(默认 false)
7771
7765
  */
7772
- async remove(nodeOrNodeList, { doNotSelect = false, doNotSwitchPage = false, doNotPushHistory = false, historyDescription, historySource } = {}) {
7766
+ async remove(nodeOrNodeList, options = {}) {
7767
+ const { doNotPushHistory = false, historyDescription, historySource } = options;
7773
7768
  this.captureSelectionBeforeOp();
7774
7769
  const nodes = Array.isArray(nodeOrNodeList) ? nodeOrNodeList : [nodeOrNodeList];
7775
7770
  const changeItems = nodes.map((node) => ({
@@ -7793,10 +7788,7 @@
7793
7788
  });
7794
7789
  }
7795
7790
  }
7796
- await Promise.all(nodes.map((node) => this.doRemove(node, {
7797
- doNotSelect,
7798
- doNotSwitchPage
7799
- })));
7791
+ await Promise.all(nodes.map((node) => this.doRemove(node, options)));
7800
7792
  this.removeInvalidNodesBySubtree(nodes);
7801
7793
  if (removedItems.length > 0 && pageForOp) if (!doNotPushHistory) this.pushOpHistory("remove", {
7802
7794
  diff: removedItems,
@@ -7818,7 +7810,8 @@
7818
7810
  remove: removedPages
7819
7811
  });
7820
7812
  }
7821
- async doUpdate(config, { changeRecords = [], historySource, replace = false } = {}) {
7813
+ async doUpdate(config, data = {}) {
7814
+ const { changeRecords = [], historySource, replace = false } = data;
7822
7815
  if (!this.get("root")) throw new Error("root为空");
7823
7816
  if (!config?.id) throw new Error("没有配置或者配置缺少id值");
7824
7817
  const info = this.getNodeInfo(config.id, false);
@@ -7867,24 +7860,18 @@
7867
7860
  * 更新节点
7868
7861
  * update后会触发依赖收集,收集完后会掉stage.update方法
7869
7862
  * @param config 新的节点配置,配置中需要有id信息
7870
- * @param data 额外数据
7871
- * @param data.changeRecords 单节点 form 端变更记录(多节点场景下被忽略,使用 changeRecordList)
7872
- * @param data.changeRecordList 多节点 form 端变更记录列表,按 config 数组同序对应每个节点;优先级高于 changeRecords
7873
- * @param data.doNotPushHistory 是否不写入历史记录(默认 false)
7874
- * @param data.historyDescription 入栈时附带的人类可读描述,用于历史面板展示(不影响 undo/redo 行为)
7875
- * @param data.replace 是否整节点替换:为 true 时跳过 mergeWith / toggleFixedPosition / setChildrenLayout,直接用传入配置覆盖(默认 false)
7863
+ * @param data 额外数据,见 {@link UpdateOptions}
7876
7864
  * @returns 更新后的节点配置
7877
7865
  */
7878
7866
  async update(config, data = {}) {
7879
7867
  this.captureSelectionBeforeOp();
7880
- const { doNotPushHistory = false, changeRecordList, changeRecords, historyDescription, historySource, replace = false, invalidInfo } = data;
7868
+ const { doNotPushHistory = false, changeRecordList, changeRecords, historyDescription, historySource, invalidInfo } = data;
7881
7869
  const nodes = Array.isArray(config) ? config : [config];
7882
7870
  const updateData = await Promise.all(nodes.map((node, index) => {
7883
7871
  const recordsForNode = changeRecordList ? changeRecordList[index] ?? [] : changeRecords ?? [];
7884
7872
  return this.doUpdate(node, {
7885
- changeRecords: recordsForNode,
7886
- historySource,
7887
- replace
7873
+ ...data,
7874
+ changeRecords: recordsForNode
7888
7875
  });
7889
7876
  }));
7890
7877
  this.applyInvalidInfo(config, invalidInfo);
@@ -8727,14 +8714,15 @@
8727
8714
  const parent = this.getNodeById(parentId, false);
8728
8715
  if (parent?.items) {
8729
8716
  const addedNode = cloneDeep$1(newSchema);
8730
- if (typeof index === "number" && index >= 0 && index < parent.items.length) parent.items.splice(index, 0, addedNode);
8731
- else parent.items.push(addedNode);
8717
+ const insertIndex = clampIndex(index, parent.items.length);
8718
+ parent.items.splice(insertIndex, 0, addedNode);
8732
8719
  addedNodes.push(addedNode);
8733
8720
  await stage?.add({
8734
8721
  config: cloneDeep$1(newSchema),
8735
8722
  parent: cloneDeep$1(parent),
8736
8723
  parentId: parent.id,
8737
- root: cloneDeep$1(root)
8724
+ root: cloneDeep$1(root),
8725
+ index: insertIndex
8738
8726
  });
8739
8727
  }
8740
8728
  }
@@ -8752,13 +8740,15 @@
8752
8740
  const parent = this.getNodeById(parentId, false);
8753
8741
  if (parent?.items) {
8754
8742
  const addedNode = cloneDeep$1(oldSchema);
8755
- parent.items.splice(index ?? parent.items.length, 0, addedNode);
8743
+ const insertIndex = clampIndex(index, parent.items.length);
8744
+ parent.items.splice(insertIndex, 0, addedNode);
8756
8745
  addedNodes.push(addedNode);
8757
8746
  await stage?.add({
8758
8747
  config: cloneDeep$1(oldSchema),
8759
8748
  parent: cloneDeep$1(parent),
8760
8749
  parentId,
8761
- root: cloneDeep$1(root)
8750
+ root: cloneDeep$1(root),
8751
+ index: insertIndex
8762
8752
  });
8763
8753
  }
8764
8754
  }
@@ -10019,7 +10009,8 @@
10019
10009
  * @returns {CodeBlockDSL}
10020
10010
  */
10021
10011
  getCodeDslByIds(ids) {
10022
- return pick(this.getCodeDsl(), ids);
10012
+ const codeDsl = this.getCodeDsl();
10013
+ return pick(codeDsl, ids);
10023
10014
  }
10024
10015
  /**
10025
10016
  * 获取编辑状态
@@ -10832,31 +10823,8 @@
10832
10823
  //#endregion
10833
10824
  //#region packages/editor/src/utils/type-match-rules.ts
10834
10825
  init_use_compare_form();
10835
- init_props();
10836
- /**
10837
- * 将值格式化为可读的参考示例字符串。
10838
- */
10839
- var stringifyExampleValue = (value) => {
10840
- if (typeof value === "string") return `"${value}"`;
10841
- if (value === null || value === void 0) return String(value);
10842
- if (typeof value === "object") try {
10843
- return JSON.stringify(value);
10844
- } catch {
10845
- return String(value);
10846
- }
10847
- return String(value);
10848
- };
10849
- var MAX_SUGGESTION_OPTIONS = 20;
10850
- /**
10851
- * 生成「请使用以下某一个值:xxx;xxx」形式的参考建议;无可选值时返回空字符串(不追加建议)。
10852
- */
10853
- var listSuggestion = (values) => {
10854
- const list = values.filter((item) => typeof item !== "undefined" && item !== null && item !== "");
10855
- if (!list.length) return "";
10856
- const shown = list.slice(0, MAX_SUGGESTION_OPTIONS).map(stringifyExampleValue);
10857
- const suffix = list.length > MAX_SUGGESTION_OPTIONS ? " 等" : "";
10858
- return `请使用以下某一个值:${shown.join(";")}${suffix}`;
10859
- };
10826
+ /** 复用 form 的可选项建议文案;额外过滤 null / 空串,避免业务侧无效枚举污染提示。 */
10827
+ var listSuggestion = (values) => (0, _tmagic_form.optionSuggestion)(values.filter((item) => item !== null && item !== ""));
10860
10828
  /**
10861
10829
  * 列出当前可用数据源 id 的参考建议。
10862
10830
  */
@@ -10923,7 +10891,7 @@
10923
10891
  /**
10924
10892
  * 递归收集画布中真实存在的组件 id。
10925
10893
  */
10926
- var collectNodeIds = (limit = MAX_SUGGESTION_OPTIONS) => {
10894
+ var collectNodeIds = (limit = _tmagic_form.MAX_SUGGESTION_OPTIONS) => {
10927
10895
  const ids = [];
10928
10896
  const walk = (nodes) => {
10929
10897
  for (const node of nodes || []) {
@@ -10961,7 +10929,7 @@
10961
10929
  var dataSourceBindObjectSuggestion = (dataSources = getDataSources()) => {
10962
10930
  const ds = dataSources[0];
10963
10931
  if (!ds) return SUGGESTION_DS_BIND_OBJECT;
10964
- return `请参考以下示例值:${stringifyExampleValue({
10932
+ return `请参考以下示例值:${(0, _tmagic_form.stringifyExampleValue)({
10965
10933
  isBindDataSource: true,
10966
10934
  dataSourceId: `${ds.id}`
10967
10935
  })}`;
@@ -10973,7 +10941,7 @@
10973
10941
  const ds = getDataSources()[0];
10974
10942
  if (!ds) return SUGGESTION_STRING_ARRAY;
10975
10943
  const field = firstDataSourceFieldName(ds);
10976
- return `请参考以下示例值:${stringifyExampleValue(field ? [`${ds.id}`, field] : [`${ds.id}`])}`;
10944
+ return `请参考以下示例值:${(0, _tmagic_form.stringifyExampleValue)(field ? [`${ds.id}`, field] : [`${ds.id}`])}`;
10977
10945
  };
10978
10946
  /**
10979
10947
  * 用真实数据源 id、方法名拼接方法元组示例;无数据源时回退到通用示例。
@@ -10982,7 +10950,7 @@
10982
10950
  const ds = getDataSources()[0];
10983
10951
  if (!ds) return SUGGESTION_METHOD_TUPLE;
10984
10952
  const [methodName] = [...getMethodNamesForDataSource(ds)];
10985
- return `请参考以下示例值:${stringifyExampleValue([`${ds.id}`, methodName])}`;
10953
+ return `请参考以下示例值:${(0, _tmagic_form.stringifyExampleValue)([`${ds.id}`, methodName])}`;
10986
10954
  };
10987
10955
  /**
10988
10956
  * 用真实数据源 id、字段名拼接显示条件结构示例;无数据源时回退到通用示例。
@@ -10991,8 +10959,9 @@
10991
10959
  const ds = getDataSources()[0];
10992
10960
  if (!ds) return SUGGESTION_DISPLAY_COND;
10993
10961
  const field = firstDataSourceFieldName(ds);
10994
- return `请参考以下示例值:${stringifyExampleValue([{ cond: [{
10995
- field: field ? [`${ds.id}`, field] : [`${ds.id}`],
10962
+ const fieldPath = field ? [`${ds.id}`, field] : [`${ds.id}`];
10963
+ return `请参考以下示例值:${(0, _tmagic_form.stringifyExampleValue)([{ cond: [{
10964
+ field: fieldPath,
10996
10965
  op: "=="
10997
10966
  }] }])}`;
10998
10967
  };
@@ -11273,7 +11242,7 @@
11273
11242
  var getEventNameOptions = (src, formValue = {}) => {
11274
11243
  if (!formValue.type) return [];
11275
11244
  if (src === "component") {
11276
- const sourceNode = editor_default.getNodeById(formValue.id);
11245
+ const sourceNode = editor_default.getNodeById(formValue.id) || formValue;
11277
11246
  let events = events_default.getEvent(formValue.type, { node: sourceNode }) || [];
11278
11247
  if (formValue.type === "page-fragment-container" && formValue.pageFragmentId) {
11279
11248
  const pageFragment = editor_default.get("root")?.items?.find((page) => page.id === formValue.pageFragmentId);
@@ -15103,7 +15072,6 @@
15103
15072
  //#endregion
15104
15073
  //#region packages/editor/src/layouts/props-panel/PropsPanel.vue?vue&type=script&setup=true&lang.ts
15105
15074
  init_Icon();
15106
- init_props();
15107
15075
  var _hoisted_1$58 = {
15108
15076
  ref: "propsPanel",
15109
15077
  class: "m-editor-props-panel"
@@ -19292,7 +19260,7 @@
19292
19260
  var componentList_default = new ComponentList();
19293
19261
  //#endregion
19294
19262
  //#region packages/editor/src/utils/dep/worker.ts?worker&inline
19295
- var jsContent = "(function() {\n //#region packages/schema/src/index.ts\n const NODE_CONDS_KEY = \"displayConds\";\n const NODE_DISABLE_DATA_SOURCE_KEY = \"_tmagic_node_disabled_data_source\";\n const NODE_DISABLE_CODE_BLOCK_KEY = \"_tmagic_node_disabled_code_block\";\n let HookType = /* @__PURE__ */ function(HookType) {\n /** 代码块钩子标识 */\n HookType[\"CODE\"] = \"code\";\n return HookType;\n }({});\n //#endregion\n //#region packages/utils/src/const.ts\n const DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX = \"ds-field::\";\n //#endregion\n //#region packages/utils/src/index.ts\n const isObject = (obj) => Object.prototype.toString.call(obj) === \"[object Object]\";\n const getKeysArray = (keys) => `${keys}`.replace(/\\[(\\d+)\\]/g, \".$1\").split(\".\");\n const dataSourceTemplateRegExp = /\\$\\{([\\s\\S]+?)\\}/g;\n //#endregion\n //#region packages/dep/src/types.ts\n /** 依赖收集的目标类型 */\n let DepTargetType = /* @__PURE__ */ function(DepTargetType) {\n DepTargetType[\"DEFAULT\"] = \"default\";\n /** 代码块 */\n DepTargetType[\"CODE_BLOCK\"] = \"code-block\";\n /** 数据源 */\n DepTargetType[\"DATA_SOURCE\"] = \"data-source\";\n /** 数据源方法 */\n DepTargetType[\"DATA_SOURCE_METHOD\"] = \"data-source-method\";\n /** 数据源条件 */\n DepTargetType[\"DATA_SOURCE_COND\"] = \"data-source-cond\";\n return DepTargetType;\n }({});\n //#endregion\n //#region packages/dep/src/Target.ts\n /**\n * 需要收集依赖的目标\n * 例如:一个代码块可以为一个目标\n */\n var Target = class {\n /**\n * 如何识别目标\n */\n isTarget;\n /**\n * 目标id,不可重复\n * 例如目标是代码块,则为代码块id\n */\n id;\n /**\n * 目标名称,用于显示在依赖列表中\n */\n name;\n /**\n * 不同的目标可以进行分类,例如代码块,数据源可以为两个不同的type\n */\n type = DepTargetType.DEFAULT;\n /**\n * 依赖详情\n * 实例:{ 'node_id': { name: 'node_name', keys: [ created, mounted ] } }\n */\n deps = {};\n /**\n * 是否默认收集,默认为true,当值为false时需要传入type参数给collect方法才会被收集\n */\n isCollectByDefault;\n /**\n * 可序列化描述,有该描述的 target 可以在 worker 中重建,从而把依赖收集放到子线程执行\n */\n descriptor;\n constructor(options) {\n this.isTarget = options.isTarget;\n this.id = options.id;\n this.name = options.name;\n this.isCollectByDefault = options.isCollectByDefault ?? true;\n this.descriptor = options.descriptor;\n if (options.type) this.type = options.type;\n if (options.initialDeps) this.deps = options.initialDeps;\n }\n /**\n * 更新依赖\n * @param option 节点配置\n * @param key 哪个key配置了这个目标的id\n */\n updateDep({ id, name, key, data }) {\n const dep = this.deps[id] || {\n name,\n keys: []\n };\n dep.name = name;\n dep.data = data;\n this.deps[id] = dep;\n if (!dep.keys.includes(key)) dep.keys.push(key);\n }\n /**\n * 删除依赖\n * @param node 哪个节点的依赖需要移除,如果为空,则移除所有依赖\n * @param key 节点下哪个key需要移除,如果为空,则移除改节点下的所有依赖key\n * @returns void\n */\n removeDep(id, key) {\n if (typeof id === \"undefined\") {\n Object.keys(this.deps).forEach((depKey) => {\n delete this.deps[depKey];\n });\n return;\n }\n const dep = this.deps[id];\n if (!dep) return;\n if (key) {\n const index = dep.keys.indexOf(key);\n dep.keys.splice(index, 1);\n if (dep.keys.length === 0) delete this.deps[id];\n } else delete this.deps[id];\n }\n /**\n * 判断指定节点下的指定key是否存在在依赖列表中\n * @param node 哪个节点\n * @param key 哪个key\n * @returns boolean\n */\n hasDep(id, key) {\n return this.deps[id]?.keys.includes(key) ?? false;\n }\n destroy() {\n this.deps = {};\n }\n };\n //#endregion\n //#region packages/dep/src/utils.ts\n const INTEGER_REGEXP = /^\\d+$/;\n const createCodeBlockTarget = (id, codeBlock, initialDeps = {}) => new Target({\n type: DepTargetType.CODE_BLOCK,\n id,\n initialDeps,\n name: codeBlock.name,\n descriptor: {\n type: DepTargetType.CODE_BLOCK,\n id,\n codeBlock: { name: codeBlock.name }\n },\n isTarget: (_key, value) => {\n if (id === value) return true;\n if (value?.hookType === HookType.CODE && Array.isArray(value.hookData)) return value.hookData.some((item) => item.codeId === id);\n return false;\n }\n });\n /**\n * ['array'] ['array', '0'] ['array', '0', 'a'] 这种返回false\n * ['array', 'a'] 这种返回true\n * @param keys\n * @param fields\n * @returns boolean\n */\n const isIncludeArrayField = (keys, fields) => {\n let f = fields;\n return keys.some((key, index) => {\n const field = f.find(({ name }) => name === key);\n f = field?.fields || [];\n return field?.type === \"array\" && index < keys.length - 1 && !INTEGER_REGEXP.test(keys[index + 1]);\n });\n };\n /**\n * 判断模板(value)是不是使用数据源Id(dsId),如:`xxx${dsId.field}xxx${dsId.field}`\n * @param value any\n * @param dsId string | number\n * @param hasArray boolean true: 一定要包含有需要迭代的模板; false: 一定要包含普通模板;\n * @returns boolean\n */\n const isDataSourceTemplate = (value, ds, hasArray = false) => {\n const templates = value.match(dataSourceTemplateRegExp) || [];\n if (templates.length <= 0) return false;\n for (const tpl of templates) {\n const keys = getKeysArray(tpl.substring(2, tpl.length - 1));\n const dsId = keys.shift();\n if (!dsId || dsId !== ds.id) continue;\n if (hasArray === isIncludeArrayField(keys, ds.fields)) return true;\n }\n return false;\n };\n /**\n * 指定数据源的字符串模板,如:{ isBindDataSourceField: true, dataSourceId: 'id', template: `xxx${field}xxx`}\n * @param value any\n * @param dsId string | number\n * @returns boolean\n */\n const isSpecificDataSourceTemplate = (value, dsId) => value?.isBindDataSourceField && value.dataSourceId && value.dataSourceId === dsId && typeof value.template === \"string\";\n /**\n * 关联数据源字段,格式为 [前缀+数据源ID, 字段名]\n * 使用data-source-field-select value: 'value' 可以配置出来\n * @param value any[]\n * @param id string | number\n * @returns boolean\n */\n const isUseDataSourceField = (value, id) => {\n if (!Array.isArray(value) || typeof value[0] !== \"string\") return false;\n const [prefixId] = value;\n const prefixIndex = prefixId.indexOf(DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX);\n if (prefixIndex === -1) return false;\n return prefixId.substring(prefixIndex + DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX.length) === id;\n };\n const isDataSourceTarget = (ds, key, value, hasArray = false) => {\n if (!value) return false;\n const valueType = typeof value;\n if (valueType !== \"string\" && valueType !== \"object\") return false;\n if (`${key}`.startsWith(\"displayConds\")) return false;\n if (valueType === \"string\") return isDataSourceTemplate(value, ds, hasArray);\n if (isObject(value) && value.isBindDataSource && value.dataSourceId === ds.id) return true;\n if (isSpecificDataSourceTemplate(value, ds.id)) return true;\n if (isUseDataSourceField(value, ds.id)) {\n const [, ...keys] = value;\n const includeArray = isIncludeArrayField(keys, ds.fields);\n return hasArray ? includeArray : !includeArray;\n }\n return false;\n };\n const isDataSourceCondTarget = (ds, key, value, hasArray = false) => {\n if (!Array.isArray(value) || !ds) return false;\n const [dsId, ...keys] = value;\n if (dsId !== ds.id || !`${key}`.startsWith(\"displayConds\")) return false;\n if (ds.fields?.some((field) => field.name === keys[0])) {\n const includeArray = isIncludeArrayField(keys, ds.fields);\n return hasArray ? includeArray : !includeArray;\n }\n return false;\n };\n const createDataSourceTarget = (ds, initialDeps = {}) => new Target({\n type: DepTargetType.DATA_SOURCE,\n id: ds.id,\n initialDeps,\n descriptor: {\n type: DepTargetType.DATA_SOURCE,\n ds: {\n id: ds.id,\n fields: ds.fields || []\n }\n },\n isTarget: (key, value) => isDataSourceTarget(ds, key, value)\n });\n const createDataSourceCondTarget = (ds, initialDeps = {}) => new Target({\n type: DepTargetType.DATA_SOURCE_COND,\n id: ds.id,\n initialDeps,\n descriptor: {\n type: DepTargetType.DATA_SOURCE_COND,\n ds: {\n id: ds.id,\n fields: ds.fields || []\n }\n },\n isTarget: (key, value) => isDataSourceCondTarget(ds, key, value)\n });\n const createDataSourceMethodTarget = (ds, initialDeps = {}) => new Target({\n type: DepTargetType.DATA_SOURCE_METHOD,\n id: ds.id,\n initialDeps,\n descriptor: {\n type: DepTargetType.DATA_SOURCE_METHOD,\n ds: {\n id: ds.id,\n methods: (ds.methods || []).map((method) => ({ name: method.name })),\n fields: (ds.fields || []).map((field) => ({ name: field.name }))\n }\n },\n isTarget: (_key, value) => {\n if (!Array.isArray(value)) return false;\n const [dsId, methodName] = value;\n if (!methodName || dsId !== ds.id) return false;\n if (ds.methods?.some((method) => method.name === methodName)) return true;\n if (ds.fields?.some((field) => field.name === methodName)) return false;\n return true;\n }\n });\n /**\n * 用可序列化描述重建 target,使依赖收集可以在 worker 等无法传递函数的环境中进行\n * @param descriptor 由工厂函数写入 target 的描述\n * @param initialDeps 初始依赖\n * @returns Target\n */\n const createTargetByDescriptor = (descriptor, initialDeps = {}) => {\n switch (descriptor.type) {\n case DepTargetType.CODE_BLOCK: return createCodeBlockTarget(descriptor.id, descriptor.codeBlock, initialDeps);\n case DepTargetType.DATA_SOURCE: return createDataSourceTarget(descriptor.ds, initialDeps);\n case DepTargetType.DATA_SOURCE_COND: return createDataSourceCondTarget(descriptor.ds, initialDeps);\n case DepTargetType.DATA_SOURCE_METHOD: return createDataSourceMethodTarget(descriptor.ds, initialDeps);\n default: throw new Error(`unknown target descriptor: ${JSON.stringify(descriptor)}`);\n }\n };\n const traverseTarget = (targetsList, cb, type) => {\n if (type) {\n const targets = targetsList[type];\n if (targets) for (const target of Object.values(targets)) cb(target);\n return;\n }\n for (const targets of Object.values(targetsList)) for (const target of Object.values(targets)) cb(target);\n };\n //#endregion\n //#region packages/dep/src/Watcher.ts\n const DATA_SOURCE_TARGET_TYPES = /* @__PURE__ */ new Set([\n DepTargetType.DATA_SOURCE,\n DepTargetType.DATA_SOURCE_COND,\n DepTargetType.DATA_SOURCE_METHOD\n ]);\n var Watcher = class {\n targetsList = {};\n childrenProp = \"items\";\n idProp = \"id\";\n nameProp = \"name\";\n constructor(options) {\n if (options?.initialTargets) this.targetsList = options.initialTargets;\n if (options?.childrenProp) this.childrenProp = options.childrenProp;\n }\n getTargetsList() {\n return this.targetsList;\n }\n /**\n * 获取指定类型中的所有target\n * @param type 分类\n * @returns Target[]\n */\n getTargets(type = DepTargetType.DEFAULT) {\n return this.targetsList[type] || {};\n }\n /**\n * 添加新的目标\n * @param target Target\n */\n addTarget(target) {\n const targets = this.getTargets(target.type) || {};\n this.targetsList[target.type] = targets;\n targets[target.id] = target;\n }\n /**\n * 获取指定id的target\n * @param id target id\n * @returns Target\n */\n getTarget(id, type = DepTargetType.DEFAULT) {\n return this.getTargets(type)[id];\n }\n /**\n * 判断是否存在指定id的target\n * @param id target id\n * @returns boolean\n */\n hasTarget(id, type = DepTargetType.DEFAULT) {\n return Boolean(this.getTarget(id, type));\n }\n /**\n * 判断是否存在指定类型的target\n * @param type target type\n * @returns boolean\n */\n hasSpecifiedTypeTarget(type = DepTargetType.DEFAULT) {\n return Object.keys(this.getTargets(type)).length > 0;\n }\n /**\n * 删除指定id的target\n * @param id target id\n */\n removeTarget(id, type = DepTargetType.DEFAULT) {\n const targets = this.getTargets(type);\n if (targets[id]) {\n targets[id].destroy();\n delete targets[id];\n }\n }\n /**\n * 删除指定分类的所有target\n * @param type 分类\n * @returns void\n */\n removeTargets(type = DepTargetType.DEFAULT) {\n const targets = this.targetsList[type];\n if (!targets) return;\n for (const target of Object.values(targets)) target.destroy();\n delete this.targetsList[type];\n }\n /**\n * 删除所有target\n */\n clearTargets() {\n for (const key of Object.keys(this.targetsList)) delete this.targetsList[key];\n }\n /**\n * 收集依赖\n * @param nodes 需要收集的节点\n * @param deep 是否需要收集子节点\n * @param type 强制收集指定类型的依赖\n */\n collect(nodes, depExtendedData = {}, deep = false, type) {\n const targets = this.getCollectableTargets(type);\n if (!targets.length) return;\n for (const node of nodes) {\n this.removeTargetsDep(targets, node);\n this.collectItems(node, targets, depExtendedData, deep);\n }\n }\n /**\n * 获取本次需要参与收集的 target(过滤规则与 collectByCallback 一致)\n *\n * 注:供 editor 的 dep service / worker 跨包批量收集时复用,因此为 public。\n * @param type 强制收集指定类型的依赖\n */\n getCollectableTargets(type) {\n const targets = [];\n traverseTarget(this.targetsList, (target) => {\n if (!type && !target.isCollectByDefault) return;\n targets.push(target);\n }, type);\n return targets;\n }\n collectByCallback(nodes, type, cb) {\n traverseTarget(this.targetsList, (target) => {\n if (!type && !target.isCollectByDefault) return;\n for (const node of nodes) cb({\n node,\n target\n });\n }, type);\n }\n /**\n * 清除所有目标的依赖\n * @param nodes 需要清除依赖的节点\n */\n clear(nodes, type) {\n let { targetsList } = this;\n if (type) targetsList = { [type]: this.getTargets(type) };\n const clearedItemsNodeIds = /* @__PURE__ */ new Set();\n traverseTarget(targetsList, (target) => {\n if (nodes) for (const node of nodes) {\n target.removeDep(node[this.idProp]);\n if (Array.isArray(node[this.childrenProp]) && node[this.childrenProp].length && !clearedItemsNodeIds.has(node[this.idProp])) {\n clearedItemsNodeIds.add(node[this.idProp]);\n this.clear(node[this.childrenProp]);\n }\n }\n else target.removeDep();\n });\n }\n /**\n * 清除指定类型的依赖\n * @param type 类型\n * @param nodes 需要清除依赖的节点\n */\n clearByType(type, nodes) {\n this.clear(nodes, type);\n }\n /**\n * 收集单个 target 的依赖,等价于 collectItems(node, [target], ...)\n */\n collectItem(node, target, depExtendedData = {}, deep = false) {\n this.collectItems(node, [target], depExtendedData, deep);\n }\n removeTargetDep(target, node, key) {\n target.removeDep(node[this.idProp], key);\n if (typeof key === \"undefined\" && Array.isArray(node[this.childrenProp]) && node[this.childrenProp].length) for (const item of node[this.childrenProp]) this.removeTargetDep(target, item, key);\n }\n /**\n * 与 removeTargetDep 等价,但一次子树递归同时处理多个 target,\n * 把删除阶段的结构遍历从 ×targets 降到 ×1。\n *\n * 注:供 editor 的 dep service 跨包批量删除时复用,因此为 public。\n */\n removeTargetsDep(targets, node, key) {\n const id = node[this.idProp];\n for (const target of targets) target.removeDep(id, key);\n if (typeof key === \"undefined\" && Array.isArray(node[this.childrenProp]) && node[this.childrenProp].length) for (const item of node[this.childrenProp]) this.removeTargetsDep(targets, item, key);\n }\n /**\n * 与 collectItem 等价,但一次遍历同时处理多个 target(不含删除阶段)。\n *\n * 关键优化:原实现对每个 target 都完整遍历一遍节点树(O(targets × 树规模)),大页面 + 大量数据源时,\n * 结构遍历(Object.entries / 递归 / fullKey 字符串拼接)会被重复 targets 次。这里改为「整棵树只遍历一次,\n * 在每个属性上检查所有 target」,把结构遍历开销从 ×targets 降到 ×1,isTarget 调用次数不变,收集结果完全一致。\n *\n * 注:供 editor 的 dep service / worker 跨包批量收集时复用,因此为 public。\n */\n collectItems(node, targets, depExtendedData = {}, deep = false) {\n const activeTargets = this.filterTargetsByNode(node, targets);\n if (!activeTargets.length) return;\n this.collectTargetForTargets(node, node, \"\", activeTargets, depExtendedData, deep);\n }\n filterTargetsByNode(node, targets) {\n const disableDataSource = Boolean(node[NODE_DISABLE_DATA_SOURCE_KEY]);\n const disableCodeBlock = Boolean(node[NODE_DISABLE_CODE_BLOCK_KEY]);\n if (!disableDataSource && !disableCodeBlock) return targets;\n return targets.filter((target) => {\n if (disableDataSource && DATA_SOURCE_TARGET_TYPES.has(target.type)) return false;\n if (disableCodeBlock && target.type === DepTargetType.CODE_BLOCK) return false;\n return true;\n });\n }\n collectTargetForTargets(node, config, prop, targets, depExtendedData, deep) {\n const id = node[this.idProp];\n const name = `${node[this.nameProp] || node[this.idProp]}`;\n for (const [key, value] of Object.entries(config)) {\n if (typeof value === \"undefined\" || value === \"\") continue;\n const keyIsItems = key === this.childrenProp;\n const fullKey = prop ? `${prop}.${key}` : key;\n let notMatched = null;\n for (let i = 0, l = targets.length; i < l; i++) {\n const target = targets[i];\n if (target.isTarget(fullKey, value, config)) target.updateDep({\n id,\n name,\n data: depExtendedData,\n key: fullKey\n });\n else (notMatched || (notMatched = [])).push(target);\n }\n if (notMatched) {\n if (!keyIsItems && Array.isArray(value)) for (let i = 0, l = value.length; i < l; i++) {\n const item = value[i];\n if (isObject(item)) this.collectTargetForTargets(node, item, `${fullKey}[${i}]`, notMatched, depExtendedData, deep);\n }\n else if (isObject(value)) this.collectTargetForTargets(node, value, fullKey, notMatched, depExtendedData, deep);\n }\n if (keyIsItems && deep && Array.isArray(value)) for (const child of value) this.collectItems(child, targets, depExtendedData, deep);\n }\n }\n };\n //#endregion\n //#region packages/editor/src/utils/logger.ts\n const error = (...args) => {\n if (process.env.NODE_ENV === \"development\") console.error(\"magic editor: \", ...args);\n };\n //#endregion\n //#region packages/editor/src/utils/dep/worker.ts\n /**\n * 收集本次会覆盖到的节点 id\n * 必须与 deep 一致:deep=false 时不能带上子孙 id,否则写回阶段 removeDep 会清掉未重收的子节点依赖\n */\n const getNodeIds = (nodes, deep, ids = []) => {\n for (const node of nodes) {\n ids.push(node.id);\n if (deep && Array.isArray(node.items) && node.items.length) getNodeIds(node.items, deep, ids);\n }\n return ids;\n };\n const collectDsl = ({ id, dsl }) => {\n try {\n const mApp = eval(`(${dsl})`);\n if (!mApp) {\n postMessage({\n id,\n deps: {}\n });\n return;\n }\n const watcher = new Watcher({ initialTargets: {} });\n if (mApp.codeBlocks) for (const [id, code] of Object.entries(mApp.codeBlocks)) watcher.addTarget(createCodeBlockTarget(id, code));\n if (mApp.dataSources) for (const ds of mApp.dataSources) {\n watcher.addTarget(createDataSourceTarget(ds, {}));\n watcher.addTarget(createDataSourceMethodTarget(ds, {}));\n watcher.addTarget(createDataSourceCondTarget(ds, {}));\n }\n const targets = watcher.getCollectableTargets();\n for (const page of mApp.items) watcher.collectItems(page, targets, { pageId: page.id }, true);\n const deps = {\n [DepTargetType.DATA_SOURCE]: {},\n [DepTargetType.DATA_SOURCE_METHOD]: {},\n [DepTargetType.DATA_SOURCE_COND]: {},\n [DepTargetType.CODE_BLOCK]: {}\n };\n traverseTarget(watcher.getTargetsList(), (target) => {\n deps[target.type][target.id] = target.deps;\n });\n const response = {\n id,\n deps\n };\n postMessage(response);\n } catch (e) {\n error(e);\n postMessage({\n id,\n deps: {},\n failed: true\n });\n }\n };\n const collectNodes = ({ id, payload }) => {\n try {\n const { nodes, targets: descriptors, depExtendedData, deep } = eval(`(${payload})`);\n const watcher = new Watcher({ initialTargets: {} });\n const targets = descriptors.map((descriptor) => createTargetByDescriptor(descriptor));\n for (const node of nodes) watcher.collectItems(node, targets, depExtendedData, deep);\n const deps = {};\n for (const target of targets) {\n if (!deps[target.type]) deps[target.type] = {};\n deps[target.type][target.id] = target.deps;\n }\n const response = {\n id,\n deps,\n nodeIds: getNodeIds(nodes, deep)\n };\n postMessage(response);\n } catch (e) {\n error(e);\n postMessage({\n id,\n deps: {},\n nodeIds: [],\n failed: true\n });\n }\n };\n /**\n * 依赖收集 worker\n *\n * 依赖收集需要深度遍历整棵节点树并对每个属性做 target 匹配,节点/数据源多时会长时间占用主线程导致页面卡死,\n * 因此把遍历匹配放到 worker 中执行。\n * 全量与增量收集共用一个常驻 worker:收集逻辑只打进一份 inline worker 产物,\n * 也不会因为频繁收集而反复创建线程,每个请求用 id 与调用方对应。\n */\n onmessage = (e) => {\n if (\"dsl\" in e.data) {\n collectDsl(e.data);\n return;\n }\n collectNodes(e.data);\n };\n //#endregion\n})();\n";
19263
+ var jsContent = "(function() {\n //#region packages/schema/src/index.ts\n const NODE_CONDS_KEY = \"displayConds\";\n const NODE_DISABLE_DATA_SOURCE_KEY = \"_tmagic_node_disabled_data_source\";\n const NODE_DISABLE_CODE_BLOCK_KEY = \"_tmagic_node_disabled_code_block\";\n let HookType = /* @__PURE__ */ function(HookType) {\n /** 代码块钩子标识 */\n HookType[\"CODE\"] = \"code\";\n return HookType;\n }({});\n //#endregion\n //#region packages/utils/src/const.ts\n const DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX = \"ds-field::\";\n //#endregion\n //#region packages/utils/src/index.ts\n const isObject = (obj) => Object.prototype.toString.call(obj) === \"[object Object]\";\n const getKeysArray = (keys) => `${keys}`.replace(/\\[(\\d+)\\]/g, \".$1\").split(\".\");\n const dataSourceTemplateRegExp = /\\$\\{([\\s\\S]+?)\\}/g;\n //#endregion\n //#region packages/dep/src/types.ts\n /** 依赖收集的目标类型 */\n let DepTargetType = /* @__PURE__ */ function(DepTargetType) {\n DepTargetType[\"DEFAULT\"] = \"default\";\n /** 代码块 */\n DepTargetType[\"CODE_BLOCK\"] = \"code-block\";\n /** 数据源 */\n DepTargetType[\"DATA_SOURCE\"] = \"data-source\";\n /** 数据源方法 */\n DepTargetType[\"DATA_SOURCE_METHOD\"] = \"data-source-method\";\n /** 数据源条件 */\n DepTargetType[\"DATA_SOURCE_COND\"] = \"data-source-cond\";\n return DepTargetType;\n }({});\n //#endregion\n //#region packages/dep/src/Target.ts\n /**\n * 需要收集依赖的目标\n * 例如:一个代码块可以为一个目标\n */\n var Target = class {\n /**\n * 如何识别目标\n */\n isTarget;\n /**\n * 目标id,不可重复\n * 例如目标是代码块,则为代码块id\n */\n id;\n /**\n * 目标名称,用于显示在依赖列表中\n */\n name;\n /**\n * 不同的目标可以进行分类,例如代码块,数据源可以为两个不同的type\n */\n type = DepTargetType.DEFAULT;\n /**\n * 依赖详情\n * 实例:{ 'node_id': { name: 'node_name', keys: [ created, mounted ] } }\n */\n deps = {};\n /**\n * 是否默认收集,默认为true,当值为false时需要传入type参数给collect方法才会被收集\n */\n isCollectByDefault;\n /**\n * 可序列化描述,有该描述的 target 可以在 worker 中重建,从而把依赖收集放到子线程执行\n */\n descriptor;\n constructor(options) {\n this.isTarget = options.isTarget;\n this.id = options.id;\n this.name = options.name;\n this.isCollectByDefault = options.isCollectByDefault ?? true;\n this.descriptor = options.descriptor;\n if (options.type) this.type = options.type;\n if (options.initialDeps) this.deps = options.initialDeps;\n }\n /**\n * 更新依赖\n * @param option 节点配置\n * @param key 哪个key配置了这个目标的id\n */\n updateDep({ id, name, key, data }) {\n const dep = this.deps[id] || {\n name,\n keys: []\n };\n dep.name = name;\n dep.data = data;\n this.deps[id] = dep;\n if (!dep.keys.includes(key)) dep.keys.push(key);\n }\n /**\n * 删除依赖\n * @param node 哪个节点的依赖需要移除,如果为空,则移除所有依赖\n * @param key 节点下哪个key需要移除,如果为空,则移除改节点下的所有依赖key\n * @returns void\n */\n removeDep(id, key) {\n if (typeof id === \"undefined\") {\n Object.keys(this.deps).forEach((depKey) => {\n delete this.deps[depKey];\n });\n return;\n }\n const dep = this.deps[id];\n if (!dep) return;\n if (key) {\n const index = dep.keys.indexOf(key);\n dep.keys.splice(index, 1);\n if (dep.keys.length === 0) delete this.deps[id];\n } else delete this.deps[id];\n }\n /**\n * 判断指定节点下的指定key是否存在在依赖列表中\n * @param node 哪个节点\n * @param key 哪个key\n * @returns boolean\n */\n hasDep(id, key) {\n return this.deps[id]?.keys.includes(key) ?? false;\n }\n destroy() {\n this.deps = {};\n }\n };\n //#endregion\n //#region packages/dep/src/utils.ts\n const INTEGER_REGEXP = /^\\d+$/;\n const createCodeBlockTarget = (id, codeBlock, initialDeps = {}) => new Target({\n type: DepTargetType.CODE_BLOCK,\n id,\n initialDeps,\n name: codeBlock.name,\n descriptor: {\n type: DepTargetType.CODE_BLOCK,\n id,\n codeBlock: { name: codeBlock.name }\n },\n isTarget: (_key, value) => {\n if (id === value) return true;\n if (value?.hookType === HookType.CODE && Array.isArray(value.hookData)) return value.hookData.some((item) => item.codeId === id);\n return false;\n }\n });\n /**\n * ['array'] ['array', '0'] ['array', '0', 'a'] 这种返回false\n * ['array', 'a'] 这种返回true\n * @param keys\n * @param fields\n * @returns boolean\n */\n const isIncludeArrayField = (keys, fields) => {\n let f = fields;\n return keys.some((key, index) => {\n const field = f.find(({ name }) => name === key);\n f = field?.fields || [];\n return field?.type === \"array\" && index < keys.length - 1 && !INTEGER_REGEXP.test(keys[index + 1]);\n });\n };\n /**\n * 判断模板(value)是不是使用数据源Id(dsId),如:`xxx${dsId.field}xxx${dsId.field}`\n * @param value any\n * @param dsId string | number\n * @param hasArray boolean true: 一定要包含有需要迭代的模板; false: 一定要包含普通模板;\n * @returns boolean\n */\n const isDataSourceTemplate = (value, ds, hasArray = false) => {\n const templates = value.match(dataSourceTemplateRegExp) || [];\n if (templates.length <= 0) return false;\n for (const tpl of templates) {\n const expression = tpl.substring(2, tpl.length - 1);\n const keys = getKeysArray(expression);\n const dsId = keys.shift();\n if (!dsId || dsId !== ds.id) continue;\n if (hasArray === isIncludeArrayField(keys, ds.fields)) return true;\n }\n return false;\n };\n /**\n * 指定数据源的字符串模板,如:{ isBindDataSourceField: true, dataSourceId: 'id', template: `xxx${field}xxx`}\n * @param value any\n * @param dsId string | number\n * @returns boolean\n */\n const isSpecificDataSourceTemplate = (value, dsId) => value?.isBindDataSourceField && value.dataSourceId && value.dataSourceId === dsId && typeof value.template === \"string\";\n /**\n * 关联数据源字段,格式为 [前缀+数据源ID, 字段名]\n * 使用data-source-field-select value: 'value' 可以配置出来\n * @param value any[]\n * @param id string | number\n * @returns boolean\n */\n const isUseDataSourceField = (value, id) => {\n if (!Array.isArray(value) || typeof value[0] !== \"string\") return false;\n const [prefixId] = value;\n const prefixIndex = prefixId.indexOf(DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX);\n if (prefixIndex === -1) return false;\n return prefixId.substring(prefixIndex + DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX.length) === id;\n };\n const isDataSourceTarget = (ds, key, value, hasArray = false) => {\n if (!value) return false;\n const valueType = typeof value;\n if (valueType !== \"string\" && valueType !== \"object\") return false;\n if (`${key}`.startsWith(\"displayConds\")) return false;\n if (valueType === \"string\") return isDataSourceTemplate(value, ds, hasArray);\n if (isObject(value) && value.isBindDataSource && value.dataSourceId === ds.id) return true;\n if (isSpecificDataSourceTemplate(value, ds.id)) return true;\n if (isUseDataSourceField(value, ds.id)) {\n const [, ...keys] = value;\n const includeArray = isIncludeArrayField(keys, ds.fields);\n return hasArray ? includeArray : !includeArray;\n }\n return false;\n };\n const isDataSourceCondTarget = (ds, key, value, hasArray = false) => {\n if (!Array.isArray(value) || !ds) return false;\n const [dsId, ...keys] = value;\n if (dsId !== ds.id || !`${key}`.startsWith(\"displayConds\")) return false;\n if (ds.fields?.some((field) => field.name === keys[0])) {\n const includeArray = isIncludeArrayField(keys, ds.fields);\n return hasArray ? includeArray : !includeArray;\n }\n return false;\n };\n const createDataSourceTarget = (ds, initialDeps = {}) => new Target({\n type: DepTargetType.DATA_SOURCE,\n id: ds.id,\n initialDeps,\n descriptor: {\n type: DepTargetType.DATA_SOURCE,\n ds: {\n id: ds.id,\n fields: ds.fields || []\n }\n },\n isTarget: (key, value) => isDataSourceTarget(ds, key, value)\n });\n const createDataSourceCondTarget = (ds, initialDeps = {}) => new Target({\n type: DepTargetType.DATA_SOURCE_COND,\n id: ds.id,\n initialDeps,\n descriptor: {\n type: DepTargetType.DATA_SOURCE_COND,\n ds: {\n id: ds.id,\n fields: ds.fields || []\n }\n },\n isTarget: (key, value) => isDataSourceCondTarget(ds, key, value)\n });\n const createDataSourceMethodTarget = (ds, initialDeps = {}) => new Target({\n type: DepTargetType.DATA_SOURCE_METHOD,\n id: ds.id,\n initialDeps,\n descriptor: {\n type: DepTargetType.DATA_SOURCE_METHOD,\n ds: {\n id: ds.id,\n methods: (ds.methods || []).map((method) => ({ name: method.name })),\n fields: (ds.fields || []).map((field) => ({ name: field.name }))\n }\n },\n isTarget: (_key, value) => {\n if (!Array.isArray(value)) return false;\n const [dsId, methodName] = value;\n if (!methodName || dsId !== ds.id) return false;\n if (ds.methods?.some((method) => method.name === methodName)) return true;\n if (ds.fields?.some((field) => field.name === methodName)) return false;\n return true;\n }\n });\n /**\n * 用可序列化描述重建 target,使依赖收集可以在 worker 等无法传递函数的环境中进行\n * @param descriptor 由工厂函数写入 target 的描述\n * @param initialDeps 初始依赖\n * @returns Target\n */\n const createTargetByDescriptor = (descriptor, initialDeps = {}) => {\n switch (descriptor.type) {\n case DepTargetType.CODE_BLOCK: return createCodeBlockTarget(descriptor.id, descriptor.codeBlock, initialDeps);\n case DepTargetType.DATA_SOURCE: return createDataSourceTarget(descriptor.ds, initialDeps);\n case DepTargetType.DATA_SOURCE_COND: return createDataSourceCondTarget(descriptor.ds, initialDeps);\n case DepTargetType.DATA_SOURCE_METHOD: return createDataSourceMethodTarget(descriptor.ds, initialDeps);\n default: throw new Error(`unknown target descriptor: ${JSON.stringify(descriptor)}`);\n }\n };\n const traverseTarget = (targetsList, cb, type) => {\n if (type) {\n const targets = targetsList[type];\n if (targets) for (const target of Object.values(targets)) cb(target);\n return;\n }\n for (const targets of Object.values(targetsList)) for (const target of Object.values(targets)) cb(target);\n };\n //#endregion\n //#region packages/dep/src/Watcher.ts\n const DATA_SOURCE_TARGET_TYPES = /* @__PURE__ */ new Set([\n DepTargetType.DATA_SOURCE,\n DepTargetType.DATA_SOURCE_COND,\n DepTargetType.DATA_SOURCE_METHOD\n ]);\n var Watcher = class {\n targetsList = {};\n childrenProp = \"items\";\n idProp = \"id\";\n nameProp = \"name\";\n constructor(options) {\n if (options?.initialTargets) this.targetsList = options.initialTargets;\n if (options?.childrenProp) this.childrenProp = options.childrenProp;\n }\n getTargetsList() {\n return this.targetsList;\n }\n /**\n * 获取指定类型中的所有target\n * @param type 分类\n * @returns Target[]\n */\n getTargets(type = DepTargetType.DEFAULT) {\n return this.targetsList[type] || {};\n }\n /**\n * 添加新的目标\n * @param target Target\n */\n addTarget(target) {\n const targets = this.getTargets(target.type) || {};\n this.targetsList[target.type] = targets;\n targets[target.id] = target;\n }\n /**\n * 获取指定id的target\n * @param id target id\n * @returns Target\n */\n getTarget(id, type = DepTargetType.DEFAULT) {\n return this.getTargets(type)[id];\n }\n /**\n * 判断是否存在指定id的target\n * @param id target id\n * @returns boolean\n */\n hasTarget(id, type = DepTargetType.DEFAULT) {\n return Boolean(this.getTarget(id, type));\n }\n /**\n * 判断是否存在指定类型的target\n * @param type target type\n * @returns boolean\n */\n hasSpecifiedTypeTarget(type = DepTargetType.DEFAULT) {\n return Object.keys(this.getTargets(type)).length > 0;\n }\n /**\n * 删除指定id的target\n * @param id target id\n */\n removeTarget(id, type = DepTargetType.DEFAULT) {\n const targets = this.getTargets(type);\n if (targets[id]) {\n targets[id].destroy();\n delete targets[id];\n }\n }\n /**\n * 删除指定分类的所有target\n * @param type 分类\n * @returns void\n */\n removeTargets(type = DepTargetType.DEFAULT) {\n const targets = this.targetsList[type];\n if (!targets) return;\n for (const target of Object.values(targets)) target.destroy();\n delete this.targetsList[type];\n }\n /**\n * 删除所有target\n */\n clearTargets() {\n for (const key of Object.keys(this.targetsList)) delete this.targetsList[key];\n }\n /**\n * 收集依赖\n * @param nodes 需要收集的节点\n * @param deep 是否需要收集子节点\n * @param type 强制收集指定类型的依赖\n */\n collect(nodes, depExtendedData = {}, deep = false, type) {\n const targets = this.getCollectableTargets(type);\n if (!targets.length) return;\n for (const node of nodes) {\n this.removeTargetsDep(targets, node);\n this.collectItems(node, targets, depExtendedData, deep);\n }\n }\n /**\n * 获取本次需要参与收集的 target(过滤规则与 collectByCallback 一致)\n *\n * 注:供 editor 的 dep service / worker 跨包批量收集时复用,因此为 public。\n * @param type 强制收集指定类型的依赖\n */\n getCollectableTargets(type) {\n const targets = [];\n traverseTarget(this.targetsList, (target) => {\n if (!type && !target.isCollectByDefault) return;\n targets.push(target);\n }, type);\n return targets;\n }\n collectByCallback(nodes, type, cb) {\n traverseTarget(this.targetsList, (target) => {\n if (!type && !target.isCollectByDefault) return;\n for (const node of nodes) cb({\n node,\n target\n });\n }, type);\n }\n /**\n * 清除所有目标的依赖\n * @param nodes 需要清除依赖的节点\n */\n clear(nodes, type) {\n let { targetsList } = this;\n if (type) targetsList = { [type]: this.getTargets(type) };\n const clearedItemsNodeIds = /* @__PURE__ */ new Set();\n traverseTarget(targetsList, (target) => {\n if (nodes) for (const node of nodes) {\n target.removeDep(node[this.idProp]);\n if (Array.isArray(node[this.childrenProp]) && node[this.childrenProp].length && !clearedItemsNodeIds.has(node[this.idProp])) {\n clearedItemsNodeIds.add(node[this.idProp]);\n this.clear(node[this.childrenProp]);\n }\n }\n else target.removeDep();\n });\n }\n /**\n * 清除指定类型的依赖\n * @param type 类型\n * @param nodes 需要清除依赖的节点\n */\n clearByType(type, nodes) {\n this.clear(nodes, type);\n }\n /**\n * 收集单个 target 的依赖,等价于 collectItems(node, [target], ...)\n */\n collectItem(node, target, depExtendedData = {}, deep = false) {\n this.collectItems(node, [target], depExtendedData, deep);\n }\n removeTargetDep(target, node, key) {\n target.removeDep(node[this.idProp], key);\n if (typeof key === \"undefined\" && Array.isArray(node[this.childrenProp]) && node[this.childrenProp].length) for (const item of node[this.childrenProp]) this.removeTargetDep(target, item, key);\n }\n /**\n * 与 removeTargetDep 等价,但一次子树递归同时处理多个 target,\n * 把删除阶段的结构遍历从 ×targets 降到 ×1。\n *\n * 注:供 editor 的 dep service 跨包批量删除时复用,因此为 public。\n */\n removeTargetsDep(targets, node, key) {\n const id = node[this.idProp];\n for (const target of targets) target.removeDep(id, key);\n if (typeof key === \"undefined\" && Array.isArray(node[this.childrenProp]) && node[this.childrenProp].length) for (const item of node[this.childrenProp]) this.removeTargetsDep(targets, item, key);\n }\n /**\n * 与 collectItem 等价,但一次遍历同时处理多个 target(不含删除阶段)。\n *\n * 关键优化:原实现对每个 target 都完整遍历一遍节点树(O(targets × 树规模)),大页面 + 大量数据源时,\n * 结构遍历(Object.entries / 递归 / fullKey 字符串拼接)会被重复 targets 次。这里改为「整棵树只遍历一次,\n * 在每个属性上检查所有 target」,把结构遍历开销从 ×targets 降到 ×1,isTarget 调用次数不变,收集结果完全一致。\n *\n * 注:供 editor 的 dep service / worker 跨包批量收集时复用,因此为 public。\n */\n collectItems(node, targets, depExtendedData = {}, deep = false) {\n const activeTargets = this.filterTargetsByNode(node, targets);\n if (!activeTargets.length) return;\n this.collectTargetForTargets(node, node, \"\", activeTargets, depExtendedData, deep);\n }\n filterTargetsByNode(node, targets) {\n const disableDataSource = Boolean(node[NODE_DISABLE_DATA_SOURCE_KEY]);\n const disableCodeBlock = Boolean(node[NODE_DISABLE_CODE_BLOCK_KEY]);\n if (!disableDataSource && !disableCodeBlock) return targets;\n return targets.filter((target) => {\n if (disableDataSource && DATA_SOURCE_TARGET_TYPES.has(target.type)) return false;\n if (disableCodeBlock && target.type === DepTargetType.CODE_BLOCK) return false;\n return true;\n });\n }\n collectTargetForTargets(node, config, prop, targets, depExtendedData, deep) {\n const id = node[this.idProp];\n const name = `${node[this.nameProp] || node[this.idProp]}`;\n for (const [key, value] of Object.entries(config)) {\n if (typeof value === \"undefined\" || value === \"\") continue;\n const keyIsItems = key === this.childrenProp;\n const fullKey = prop ? `${prop}.${key}` : key;\n let notMatched = null;\n for (let i = 0, l = targets.length; i < l; i++) {\n const target = targets[i];\n if (target.isTarget(fullKey, value, config)) target.updateDep({\n id,\n name,\n data: depExtendedData,\n key: fullKey\n });\n else (notMatched || (notMatched = [])).push(target);\n }\n if (notMatched) {\n if (!keyIsItems && Array.isArray(value)) for (let i = 0, l = value.length; i < l; i++) {\n const item = value[i];\n if (isObject(item)) this.collectTargetForTargets(node, item, `${fullKey}[${i}]`, notMatched, depExtendedData, deep);\n }\n else if (isObject(value)) this.collectTargetForTargets(node, value, fullKey, notMatched, depExtendedData, deep);\n }\n if (keyIsItems && deep && Array.isArray(value)) for (const child of value) this.collectItems(child, targets, depExtendedData, deep);\n }\n }\n };\n //#endregion\n //#region packages/editor/src/utils/logger.ts\n const error = (...args) => {\n if (process.env.NODE_ENV === \"development\") console.error(\"magic editor: \", ...args);\n };\n //#endregion\n //#region packages/editor/src/utils/dep/worker.ts\n /**\n * 收集本次会覆盖到的节点 id\n * 必须与 deep 一致:deep=false 时不能带上子孙 id,否则写回阶段 removeDep 会清掉未重收的子节点依赖\n */\n const getNodeIds = (nodes, deep, ids = []) => {\n for (const node of nodes) {\n ids.push(node.id);\n if (deep && Array.isArray(node.items) && node.items.length) getNodeIds(node.items, deep, ids);\n }\n return ids;\n };\n const collectDsl = ({ id, dsl }) => {\n try {\n const mApp = eval(`(${dsl})`);\n if (!mApp) {\n postMessage({\n id,\n deps: {}\n });\n return;\n }\n const watcher = new Watcher({ initialTargets: {} });\n if (mApp.codeBlocks) for (const [id, code] of Object.entries(mApp.codeBlocks)) watcher.addTarget(createCodeBlockTarget(id, code));\n if (mApp.dataSources) for (const ds of mApp.dataSources) {\n watcher.addTarget(createDataSourceTarget(ds, {}));\n watcher.addTarget(createDataSourceMethodTarget(ds, {}));\n watcher.addTarget(createDataSourceCondTarget(ds, {}));\n }\n const targets = watcher.getCollectableTargets();\n for (const page of mApp.items) watcher.collectItems(page, targets, { pageId: page.id }, true);\n const deps = {\n [DepTargetType.DATA_SOURCE]: {},\n [DepTargetType.DATA_SOURCE_METHOD]: {},\n [DepTargetType.DATA_SOURCE_COND]: {},\n [DepTargetType.CODE_BLOCK]: {}\n };\n traverseTarget(watcher.getTargetsList(), (target) => {\n deps[target.type][target.id] = target.deps;\n });\n const response = {\n id,\n deps\n };\n postMessage(response);\n } catch (e) {\n error(e);\n postMessage({\n id,\n deps: {},\n failed: true\n });\n }\n };\n const collectNodes = ({ id, payload }) => {\n try {\n const { nodes, targets: descriptors, depExtendedData, deep } = eval(`(${payload})`);\n const watcher = new Watcher({ initialTargets: {} });\n const targets = descriptors.map((descriptor) => createTargetByDescriptor(descriptor));\n for (const node of nodes) watcher.collectItems(node, targets, depExtendedData, deep);\n const deps = {};\n for (const target of targets) {\n if (!deps[target.type]) deps[target.type] = {};\n deps[target.type][target.id] = target.deps;\n }\n const response = {\n id,\n deps,\n nodeIds: getNodeIds(nodes, deep)\n };\n postMessage(response);\n } catch (e) {\n error(e);\n postMessage({\n id,\n deps: {},\n nodeIds: [],\n failed: true\n });\n }\n };\n /**\n * 依赖收集 worker\n *\n * 依赖收集需要深度遍历整棵节点树并对每个属性做 target 匹配,节点/数据源多时会长时间占用主线程导致页面卡死,\n * 因此把遍历匹配放到 worker 中执行。\n * 全量与增量收集共用一个常驻 worker:收集逻辑只打进一份 inline worker 产物,\n * 也不会因为频繁收集而反复创建线程,每个请求用 id 与调用方对应。\n */\n onmessage = (e) => {\n if (\"dsl\" in e.data) {\n collectDsl(e.data);\n return;\n }\n collectNodes(e.data);\n };\n //#endregion\n})();\n";
19296
19264
  var blob = typeof self !== "undefined" && self.Blob && new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);", jsContent], { type: "text/javascript;charset=utf-8" });
19297
19265
  function WorkerWrapper(options) {
19298
19266
  let objURL;
@@ -19318,11 +19286,17 @@
19318
19286
  *
19319
19287
  * 全量收集与增量收集共用一个常驻 worker:增量收集调用频繁(每次节点更新都会触发),
19320
19288
  * 按次创建 worker 的启动开销无法接受,也容易漏掉销毁导致线程泄漏。
19289
+ *
19290
+ * 请求在主线程侧排队后逐个投递(worker 本身也是串行处理),这样 abort 时能直接丢掉尚未投递的请求,
19291
+ * 无需销毁线程:worker 只在真正异常或销毁时才重建。
19321
19292
  */
19322
19293
  var CollectWorkerClient = class {
19323
19294
  worker = null;
19324
19295
  seed = 0;
19325
- pending = /* @__PURE__ */ new Map();
19296
+ /** 等待投递给 worker 的请求 */
19297
+ queue = [];
19298
+ /** 已投递、等待 worker 响应的请求,worker 串行处理,同一时刻最多一个 */
19299
+ inflight = null;
19326
19300
  get isSupported() {
19327
19301
  return typeof Worker !== "undefined";
19328
19302
  }
@@ -19352,34 +19326,63 @@
19352
19326
  terminate() {
19353
19327
  this.worker?.terminate();
19354
19328
  this.worker = null;
19355
- this.settleAllPending();
19329
+ this.settleAll();
19356
19330
  }
19357
19331
  /**
19358
- * 丢弃在途请求并重建 worker
19359
- * clearIdleTasks / reset 中断收集时调用,避免已 abort 的长任务继续占着常驻 worker 拖慢后续收集
19332
+ * 丢弃在途请求,但保留常驻 worker
19333
+ *
19334
+ * clearIdleTasks / reset 中断收集时调用。这里不能销毁 worker:worker 重建要重新加载并启动整份收集逻辑,
19335
+ * 而 clearIdleTasks / reset 触发频繁(root 更新、数据源变更、历史回滚等),一旦下一次 abort 落在
19336
+ * 上一个 worker 还没启动完的窗口内,就会陷入「加载中被销毁 → 重建 → 又被销毁」的循环,
19337
+ * 表现为 worker 反复加载且依赖始终收集不完。
19338
+ *
19339
+ * 因此 abort 只做「不要这些结果」:尚未投递的请求直接丢掉,已投递的那一个标记为丢弃,
19340
+ * 结果回来后忽略(不写回主线程),worker 继续复用。
19360
19341
  */
19361
19342
  abort() {
19362
- this.terminate();
19343
+ const { queue } = this;
19344
+ this.queue = [];
19345
+ for (const task of queue) task.resolve(null);
19346
+ if (this.inflight && !this.inflight.discarded) {
19347
+ this.inflight.discarded = true;
19348
+ this.inflight.resolve(null);
19349
+ }
19363
19350
  }
19364
- /**
19365
- * worker 按收到的顺序逐个处理请求,因此请求间不会互相打断,用 id 把结果分发回各自的调用方
19366
- */
19367
19351
  request(createRequest) {
19368
- const worker = this.getWorker();
19369
- if (!worker) return Promise.resolve(null);
19352
+ if (!this.isSupported) return Promise.resolve(null);
19370
19353
  this.seed += 1;
19371
19354
  const id = this.seed;
19372
19355
  return new Promise((resolve) => {
19373
- this.pending.set(id, resolve);
19374
- try {
19375
- worker.postMessage(createRequest(id));
19376
- } catch (e) {
19377
- error("magic editor: 依赖收集 worker 通信失败", e);
19378
- this.pending.delete(id);
19379
- resolve(null);
19380
- }
19356
+ this.queue.push({
19357
+ id,
19358
+ createRequest,
19359
+ resolve,
19360
+ discarded: false
19361
+ });
19362
+ this.flush();
19381
19363
  });
19382
19364
  }
19365
+ /**
19366
+ * 投递队首请求,worker 串行处理,因此同一时刻只投递一个,用 id 把结果分发回各自的调用方
19367
+ */
19368
+ flush() {
19369
+ if (this.inflight || !this.queue.length) return;
19370
+ const worker = this.getWorker();
19371
+ if (!worker) {
19372
+ this.settleAll();
19373
+ return;
19374
+ }
19375
+ const task = this.queue.shift();
19376
+ this.inflight = task;
19377
+ try {
19378
+ worker.postMessage(task.createRequest(task.id));
19379
+ } catch (e) {
19380
+ error("magic editor: 依赖收集 worker 通信失败", e);
19381
+ this.inflight = null;
19382
+ if (!task.discarded) task.resolve(null);
19383
+ this.flush();
19384
+ }
19385
+ }
19383
19386
  getWorker() {
19384
19387
  if (!this.isSupported) return null;
19385
19388
  if (this.worker) return this.worker;
@@ -19402,20 +19405,25 @@
19402
19405
  return this.worker;
19403
19406
  }
19404
19407
  handleResponse(response) {
19405
- const resolve = this.pending.get(response?.id);
19406
- if (!resolve) return;
19407
- this.pending.delete(response.id);
19408
- resolve(response.failed ? null : response);
19408
+ const task = this.inflight;
19409
+ if (task?.id !== response?.id) return;
19410
+ this.inflight = null;
19411
+ if (!task.discarded) task.resolve(response.failed ? null : response);
19412
+ this.flush();
19409
19413
  }
19410
19414
  handleFatalError() {
19411
19415
  this.worker?.terminate();
19412
19416
  this.worker = null;
19413
- this.settleAllPending();
19414
- }
19415
- settleAllPending() {
19416
- const resolvers = [...this.pending.values()];
19417
- this.pending.clear();
19418
- for (const resolve of resolvers) resolve(null);
19417
+ this.settleAll();
19418
+ }
19419
+ settleAll() {
19420
+ const tasks = this.queue;
19421
+ this.queue = [];
19422
+ if (this.inflight) {
19423
+ tasks.push(this.inflight);
19424
+ this.inflight = null;
19425
+ }
19426
+ for (const task of tasks) if (!task.discarded) task.resolve(null);
19419
19427
  }
19420
19428
  };
19421
19429
  //#endregion
@@ -20377,7 +20385,8 @@
20377
20385
  const root = editorService.get("root");
20378
20386
  if (!root) return;
20379
20387
  const handler = async () => {
20380
- const nodes = (0, _tmagic_utils.getNodes)(Object.keys(root.dataSourceDeps?.[id] || {}), root.items);
20388
+ const nodeIds = Object.keys(root.dataSourceDeps?.[id] || {});
20389
+ const nodes = (0, _tmagic_utils.getNodes)(nodeIds, root.items);
20381
20390
  if (!(await Promise.all([
20382
20391
  collectIdle(nodes, false, _tmagic_core.DepTargetType.DATA_SOURCE),
20383
20392
  collectIdle(nodes, false, _tmagic_core.DepTargetType.DATA_SOURCE_COND),
@@ -20976,6 +20985,7 @@
20976
20985
  emits: ["change"],
20977
20986
  setup(__props, { emit: __emit }) {
20978
20987
  const mForm = (0, vue.inject)("mForm");
20988
+ const silentMode = (0, vue.inject)(_tmagic_form.FORM_SILENT_MODE_KEY, false);
20979
20989
  const { codeBlockService, uiService } = useServices();
20980
20990
  const eventBus = (0, vue.inject)("eventBus");
20981
20991
  const emit = __emit;
@@ -21072,7 +21082,7 @@
21072
21082
  "last-values",
21073
21083
  "size",
21074
21084
  "prop"
21075
- ])) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_form.MSelect), {
21085
+ ])) : !(0, vue.unref)(silentMode) ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_form.MSelect), {
21076
21086
  key: 1,
21077
21087
  class: "select",
21078
21088
  config: selectConfig,
@@ -21086,9 +21096,9 @@
21086
21096
  "model",
21087
21097
  "size",
21088
21098
  "prop"
21089
- ])),
21099
+ ])) : (0, vue.createCommentVNode)("v-if", true),
21090
21100
  (0, vue.createCommentVNode)(" 查看/编辑按钮:对比模式为只读,不展示 "),
21091
- !isCompareMode.value && __props.model[__props.name] && hasCodeBlockSidePanel.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicButton), {
21101
+ !isCompareMode.value && !(0, vue.unref)(silentMode) && __props.model[__props.name] && hasCodeBlockSidePanel.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicButton), {
21092
21102
  key: 2,
21093
21103
  class: "m-fields-select-action-button",
21094
21104
  size: __props.size,
@@ -21175,6 +21185,7 @@
21175
21185
  const emit = __emit;
21176
21186
  const { uiService } = useServices();
21177
21187
  const mForm = (0, vue.inject)("mForm");
21188
+ const silentMode = (0, vue.inject)(_tmagic_form.FORM_SILENT_MODE_KEY, false);
21178
21189
  /** 对比模式下隐藏新增/编辑/删除等操作按钮,仅保留只读展示。 */
21179
21190
  const isCompare = (0, vue.computed)(() => Boolean(mForm?.isCompare));
21180
21191
  const fieldValues = (0, vue.ref)({});
@@ -21441,6 +21452,7 @@
21441
21452
  const editingFieldPath = (0, vue.inject)("editingDataSourceFieldPath", (0, vue.computed)(() => []));
21442
21453
  (0, vue.provide)("editingDataSourceFieldPath", (0, vue.computed)(() => editingFieldPath.value.slice(1)));
21443
21454
  (0, vue.onMounted)(() => {
21455
+ if (silentMode) return;
21444
21456
  const path = editingFieldPath.value;
21445
21457
  if (!path.length) return;
21446
21458
  const fields = props.model[props.name] || [];
@@ -21473,7 +21485,8 @@
21473
21485
  default: (0, vue.withCtx)(() => [..._cache[9] || (_cache[9] = [(0, vue.createTextVNode)("添加", -1)])]),
21474
21486
  _: 1
21475
21487
  }, 8, ["disabled"])])) : (0, vue.createCommentVNode)("v-if", true),
21476
- (0, vue.createVNode)(FloatingBox_default, {
21488
+ !(0, vue.unref)(silentMode) ? ((0, vue.openBlock)(), (0, vue.createBlock)(FloatingBox_default, {
21489
+ key: 1,
21477
21490
  "body-style": { padding: "0 16px" },
21478
21491
  visible: addDialogVisible.value,
21479
21492
  "onUpdate:visible": _cache[2] || (_cache[2] = ($event) => addDialogVisible.value = $event),
@@ -21507,8 +21520,9 @@
21507
21520
  "title",
21508
21521
  "framework-width",
21509
21522
  "position"
21510
- ]),
21511
- (0, vue.createVNode)(FloatingBox_default, {
21523
+ ])) : (0, vue.createCommentVNode)("v-if", true),
21524
+ !(0, vue.unref)(silentMode) ? ((0, vue.openBlock)(), (0, vue.createBlock)(FloatingBox_default, {
21525
+ key: 2,
21512
21526
  "body-style": { padding: "0 16px" },
21513
21527
  visible: addFromJsonDialogVisible.value,
21514
21528
  "onUpdate:visible": _cache[5] || (_cache[5] = ($event) => addFromJsonDialogVisible.value = $event),
@@ -21533,7 +21547,7 @@
21533
21547
  "height",
21534
21548
  "framework-width",
21535
21549
  "position"
21536
- ])
21550
+ ])) : (0, vue.createCommentVNode)("v-if", true)
21537
21551
  ]);
21538
21552
  };
21539
21553
  }
@@ -21584,6 +21598,7 @@
21584
21598
  const emit = __emit;
21585
21599
  const { uiService } = useServices();
21586
21600
  const mForm = (0, vue.inject)("mForm");
21601
+ const silentMode = (0, vue.inject)(_tmagic_form.FORM_SILENT_MODE_KEY, false);
21587
21602
  /** 对比模式下隐藏新增/编辑/删除等操作按钮,仅保留只读展示。 */
21588
21603
  const isCompare = (0, vue.computed)(() => Boolean(mForm?.isCompare));
21589
21604
  const width = (0, vue.useModel)(__props, "width");
@@ -21768,7 +21783,8 @@
21768
21783
  default: (0, vue.withCtx)(() => [..._cache[4] || (_cache[4] = [(0, vue.createTextVNode)("添加", -1)])]),
21769
21784
  _: 1
21770
21785
  }, 8, ["disabled"])])) : (0, vue.createCommentVNode)("v-if", true),
21771
- (0, vue.createVNode)(FloatingBox_default, {
21786
+ !(0, vue.unref)(silentMode) ? ((0, vue.openBlock)(), (0, vue.createBlock)(FloatingBox_default, {
21787
+ key: 1,
21772
21788
  "body-style": { padding: "0 16px" },
21773
21789
  visible: addDialogVisible.value,
21774
21790
  "onUpdate:visible": _cache[1] || (_cache[1] = ($event) => addDialogVisible.value = $event),
@@ -21800,7 +21816,7 @@
21800
21816
  "title",
21801
21817
  "framework-width",
21802
21818
  "position"
21803
- ])
21819
+ ])) : (0, vue.createCommentVNode)("v-if", true)
21804
21820
  ]);
21805
21821
  };
21806
21822
  }
@@ -21842,6 +21858,7 @@
21842
21858
  const props = __props;
21843
21859
  const emit = __emit;
21844
21860
  const mForm = (0, vue.inject)("mForm");
21861
+ const silentMode = (0, vue.inject)(_tmagic_form.FORM_SILENT_MODE_KEY, false);
21845
21862
  /** 对比模式下隐藏新增/编辑/删除等操作按钮,仅保留只读展示。 */
21846
21863
  const isCompare = (0, vue.computed)(() => Boolean(mForm?.isCompare));
21847
21864
  const codeConfig = (0, vue.ref)();
@@ -21935,6 +21952,7 @@
21935
21952
  /** 由 DataSourceConfigPanel 注入:打开数据源详情后需要直接打开的方法名 */
21936
21953
  const editingMethodName = (0, vue.inject)("editingDataSourceMethodName", (0, vue.computed)(() => ""));
21937
21954
  (0, vue.onMounted)(() => {
21955
+ if (silentMode) return;
21938
21956
  const methodName = editingMethodName.value;
21939
21957
  if (!methodName) return;
21940
21958
  const methods = props.model[props.name] || [];
@@ -21959,7 +21977,7 @@
21959
21977
  default: (0, vue.withCtx)(() => [..._cache[0] || (_cache[0] = [(0, vue.createTextVNode)("添加", -1)])]),
21960
21978
  _: 1
21961
21979
  }, 8, ["disabled"])])) : (0, vue.createCommentVNode)("v-if", true),
21962
- codeConfig.value ? ((0, vue.openBlock)(), (0, vue.createBlock)(CodeBlockEditor_default, {
21980
+ codeConfig.value && !(0, vue.unref)(silentMode) ? ((0, vue.openBlock)(), (0, vue.createBlock)(CodeBlockEditor_default, {
21963
21981
  key: 1,
21964
21982
  ref: "codeBlockEditor",
21965
21983
  disabled: __props.disabled,
@@ -22104,7 +22122,8 @@
22104
22122
  */
22105
22123
  const fieldQuerySearch = (queryString, leftAngleIndex, dotIndex, cb) => {
22106
22124
  let result = [];
22107
- const keys = (0, _tmagic_utils.getKeysArray)(queryString.substring(leftAngleIndex + 1, dotIndex));
22125
+ const dsKey = queryString.substring(leftAngleIndex + 1, dotIndex);
22126
+ const keys = (0, _tmagic_utils.getKeysArray)(dsKey);
22108
22127
  const dsId = keys.shift();
22109
22128
  const ds = dataSources.value.find((ds) => ds.id === dsId);
22110
22129
  if (!ds) {
@@ -22368,6 +22387,7 @@
22368
22387
  setup(__props, { emit: __emit }) {
22369
22388
  const { dataSourceService, uiService } = useServices();
22370
22389
  const mForm = (0, vue.inject)("mForm");
22390
+ const silentMode = (0, vue.inject)(_tmagic_form.FORM_SILENT_MODE_KEY, false);
22371
22391
  const eventBus = (0, vue.inject)("eventBus");
22372
22392
  const emit = __emit;
22373
22393
  const props = __props;
@@ -22466,7 +22486,8 @@
22466
22486
  eventBus?.emit("edit-data-source-method", id, methodName);
22467
22487
  };
22468
22488
  return (_ctx, _cache) => {
22469
- return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_1$36, [(0, vue.createElementVNode)("div", _hoisted_2$6, [(0, vue.createVNode)((0, vue.unref)(_tmagic_form.MCascader), {
22489
+ return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_1$36, [(0, vue.createElementVNode)("div", _hoisted_2$6, [!(0, vue.unref)(silentMode) ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_form.MCascader), {
22490
+ key: 0,
22470
22491
  class: "select",
22471
22492
  config: cascaderConfig.value,
22472
22493
  model: __props.model,
@@ -22482,8 +22503,8 @@
22482
22503
  "size",
22483
22504
  "disabled",
22484
22505
  "prop"
22485
- ]), __props.model[__props.name] && isCustomMethod.value && dataSourceSidePanel.value && !isCompare.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicTooltip), {
22486
- key: 0,
22506
+ ])) : (0, vue.createCommentVNode)("v-if", true), !(0, vue.unref)(silentMode) && __props.model[__props.name] && isCustomMethod.value && dataSourceSidePanel.value && !isCompare.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicTooltip), {
22507
+ key: 1,
22487
22508
  content: notEditable.value ? "查看" : "编辑"
22488
22509
  }, {
22489
22510
  default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(_tmagic_design.TMagicButton), {
@@ -22763,6 +22784,7 @@
22763
22784
  }, { immediate: true });
22764
22785
  const { dataSourceService, propsService } = useServices();
22765
22786
  const mForm = (0, vue.inject)("mForm");
22787
+ const silentMode = (0, vue.inject)(_tmagic_form.FORM_SILENT_MODE_KEY, false);
22766
22788
  const dataSources = (0, vue.computed)(() => dataSourceService.get("dataSources") || []);
22767
22789
  const disabledDataSource = (0, vue.computed)(() => propsService.getDisabledDataSource());
22768
22790
  const type = (0, vue.computed)(() => {
@@ -22826,7 +22848,7 @@
22826
22848
  showDataSourceFieldSelect.value = !showDataSourceFieldSelect.value;
22827
22849
  };
22828
22850
  return (_ctx, _cache) => {
22829
- return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)(["m-fields-data-source-field-select", { [`data-source-field-${type.value}`]: !isSelectValid.value }]) }, [isSelectValid.value ? ((0, vue.openBlock)(), (0, vue.createBlock)(FieldSelect_default, {
22851
+ return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)(["m-fields-data-source-field-select", { [`data-source-field-${type.value}`]: !isSelectValid.value }]) }, [isSelectValid.value && !(0, vue.unref)(silentMode) ? ((0, vue.openBlock)(), (0, vue.createBlock)(FieldSelect_default, {
22830
22852
  key: 0,
22831
22853
  "model-value": __props.model[__props.name],
22832
22854
  disabled: __props.disabled,
@@ -22844,7 +22866,7 @@
22844
22866
  "checkStrictly",
22845
22867
  "dataSourceFieldType",
22846
22868
  "dataSourceId"
22847
- ])) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(tagName.value), {
22869
+ ])) : !(0, vue.unref)(silentMode) ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(tagName.value), {
22848
22870
  key: 1,
22849
22871
  config: __props.config.fieldConfig,
22850
22872
  model: __props.model,
@@ -22866,7 +22888,7 @@
22866
22888
  "init-values",
22867
22889
  "values",
22868
22890
  "prop"
22869
- ])), __props.config.fieldConfig && !disabledDataSource.value && !(0, vue.unref)(mForm)?.isCompare ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicTooltip), {
22891
+ ])) : (0, vue.createCommentVNode)("v-if", true), !(0, vue.unref)(silentMode) && __props.config.fieldConfig && !disabledDataSource.value && !(0, vue.unref)(mForm)?.isCompare ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicTooltip), {
22870
22892
  key: 2,
22871
22893
  disabled: showDataSourceFieldSelect.value,
22872
22894
  content: "选择数据源"
@@ -23075,8 +23097,8 @@
23075
23097
  name: "method",
23076
23098
  label: "动作",
23077
23099
  type: compActionConfig.value.type,
23078
- options: (mForm, { model }) => {
23079
- const node = editorService.getNodeById(model.to);
23100
+ options: (mForm, { model, formValue }) => {
23101
+ const node = editorService.getNodeById(model.to) || formValue;
23080
23102
  if (!node?.type) return [];
23081
23103
  return eventsService.getMethod(node.type, {
23082
23104
  targetId: model.to,
@@ -23324,6 +23346,7 @@
23324
23346
  const props = __props;
23325
23347
  const emit = __emit;
23326
23348
  const mForm = (0, vue.inject)("mForm");
23349
+ const silentMode = (0, vue.inject)(_tmagic_form.FORM_SILENT_MODE_KEY, false);
23327
23350
  /** 对比模式下隐藏增删/代码切换等操作按钮,仅保留只读展示。 */
23328
23351
  const isCompare = (0, vue.computed)(() => Boolean(mForm?.isCompare));
23329
23352
  const records = (0, vue.ref)([]);
@@ -23429,7 +23452,7 @@
23429
23452
  "disabled",
23430
23453
  "icon"
23431
23454
  ])) : (0, vue.createCommentVNode)("v-if", true)])) : (0, vue.createCommentVNode)("v-if", true),
23432
- __props.config.advanced && showCode.value ? ((0, vue.openBlock)(), (0, vue.createBlock)(CodeEditor_default, {
23455
+ __props.config.advanced && showCode.value && !(0, vue.unref)(silentMode) ? ((0, vue.openBlock)(), (0, vue.createBlock)(CodeEditor_default, {
23433
23456
  key: 1,
23434
23457
  "editor-custom-type": "m-fields-key-value",
23435
23458
  language: "javascript",
@@ -23442,7 +23465,7 @@
23442
23465
  parse: true,
23443
23466
  onSave: save
23444
23467
  }, null, 8, ["init-values", "options"])) : (0, vue.createCommentVNode)("v-if", true),
23445
- __props.config.advanced && !isCompare.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicButton), {
23468
+ __props.config.advanced && !isCompare.value && !(0, vue.unref)(silentMode) ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(_tmagic_design.TMagicButton), {
23446
23469
  key: 2,
23447
23470
  size: "default",
23448
23471
  disabled: __props.disabled,
@@ -23786,7 +23809,6 @@
23786
23809
  var DisplayConds_default = DisplayConds_vue_vue_type_script_setup_true_lang_default;
23787
23810
  //#endregion
23788
23811
  //#region packages/editor/src/fields/CondOpSelect.vue?vue&type=script&setup=true&lang.ts
23789
- init_props();
23790
23812
  var CondOpSelect_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue.defineComponent)({
23791
23813
  name: "MFieldsCondOpSelect",
23792
23814
  __name: "CondOpSelect",
@@ -26061,6 +26083,14 @@
26061
26083
  app.use(_tmagic_form.default, opt || {});
26062
26084
  app.use(_tmagic_table.default);
26063
26085
  (0, _tmagic_form.registerTypeMatchRules)(editorTypeMatchRules);
26086
+ (0, _tmagic_form.registerSilentLeafFieldTypes)([
26087
+ "vs-code",
26088
+ "ui-select",
26089
+ "cond-op-select",
26090
+ "page-fragment-select",
26091
+ "data-source-select",
26092
+ "data-source-input"
26093
+ ]);
26064
26094
  app.config.globalProperties.$TMAGIC_EDITOR = option;
26065
26095
  setEditorConfig(option);
26066
26096
  app.component(`${Editor_default.name || "MEditor"}`, Editor_default);
@@ -26091,6 +26121,11 @@
26091
26121
  init_CodeEditor();
26092
26122
  init_Icon();
26093
26123
  init_CompareForm();
26124
+ init_type();
26125
+ init_code_block();
26126
+ init_use_compare_form();
26127
+ init_editor();
26128
+ init_monaco_editor();
26094
26129
  //#endregion
26095
26130
  exports.ALL_COND_OPS = ALL_COND_OPS;
26096
26131
  exports.CODE_DRAFT_STORAGE_KEY = CODE_DRAFT_STORAGE_KEY;
@@ -26270,7 +26305,6 @@
26270
26305
  exports.numberOptions = numberOptions;
26271
26306
  exports.openIndexedDB = openIndexedDB;
26272
26307
  exports.propsService = props_default;
26273
- exports.removeStyleDisplayConfig = removeStyleDisplayConfig;
26274
26308
  exports.resolveFieldByPath = resolveFieldByPath;
26275
26309
  exports.resolveSelectedNode = resolveSelectedNode;
26276
26310
  exports.serializeConfig = serializeConfig;