@symbo.ls/scratch 2.11.470 → 2.11.475

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.
@@ -346,11 +346,11 @@ var require_array = __commonJS({
346
346
  var joinArrays = (...arrays) => {
347
347
  return [].concat(...arrays);
348
348
  };
349
- var mergeArray = (arr, excludeFrom = []) => {
350
- return arr.reduce((a, c) => (0, import_object.deepMerge)(a, (0, import_object.deepCloneWithExtend)(c, excludeFrom), excludeFrom), {});
349
+ var mergeArray = (arr, exclude = []) => {
350
+ return arr.reduce((a, c) => (0, import_object.deepMerge)(a, (0, import_object.deepClone)(c, { exclude }), exclude), {});
351
351
  };
352
352
  var mergeAndCloneIfArray = (obj) => {
353
- return (0, import_types.isArray)(obj) ? mergeArray(obj) : (0, import_object.deepCloneWithExtend)(obj);
353
+ return (0, import_types.isArray)(obj) ? mergeArray(obj) : (0, import_object.deepClone)(obj);
354
354
  };
355
355
  var cutArrayBeforeValue = (arr, value) => {
356
356
  const index = arr.indexOf(value);
@@ -599,8 +599,6 @@ var require_object = __commonJS({
599
599
  createNestedObject: () => createNestedObject,
600
600
  createObjectWithoutPrototype: () => createObjectWithoutPrototype,
601
601
  deepClone: () => deepClone2,
602
- deepCloneExclude: () => deepCloneExclude,
603
- deepCloneWithExtend: () => deepCloneWithExtend,
604
602
  deepContains: () => deepContains,
605
603
  deepDestringify: () => deepDestringify,
606
604
  deepDiff: () => deepDiff,
@@ -694,78 +692,56 @@ var require_object = __commonJS({
694
692
  }
695
693
  return o;
696
694
  };
697
- var deepCloneExclude = (obj, excludeFrom = []) => {
698
- if ((0, import_types.isArray)(obj)) {
699
- return obj.map((x) => deepCloneExclude(x, excludeFrom));
700
- }
701
- const o = {};
702
- for (const k in obj) {
703
- const hasOwnProperty2 = Object.prototype.hasOwnProperty.call(obj, k);
704
- if (!hasOwnProperty2 || excludeFrom.includes(k) || k.startsWith("__"))
705
- continue;
706
- let v = obj[k];
707
- if (k === "extend" && (0, import_types.isArray)(v)) {
708
- v = mergeArrayExclude(v, excludeFrom);
709
- }
710
- if ((0, import_types.isArray)(v)) {
711
- o[k] = v.map((x) => deepCloneExclude(x, excludeFrom));
712
- } else if ((0, import_types.isObject)(v)) {
713
- o[k] = deepCloneExclude(v, excludeFrom);
714
- } else
715
- o[k] = v;
716
- }
717
- return o;
695
+ var mergeArrayExclude = (arr, exclude = []) => {
696
+ return arr.reduce((acc, curr) => deepMerge2(acc, deepClone2(curr, { exclude })), {});
718
697
  };
719
- var mergeArrayExclude = (arr, excl = []) => {
720
- return arr.reduce((acc, curr) => deepMerge2(acc, deepCloneExclude(curr, excl)), {});
721
- };
722
- var deepClone2 = (obj, exclude = [], cleanUndefined = false, visited = /* @__PURE__ */ new WeakMap()) => {
723
- if (!(0, import_types.isObjectLike)(obj) || (0, import_node.isDOMNode)(obj))
698
+ var deepClone2 = (obj, options = {}) => {
699
+ const {
700
+ exclude = [],
701
+ cleanUndefined = false,
702
+ cleanNull = false,
703
+ window: targetWindow,
704
+ visited = /* @__PURE__ */ new WeakMap(),
705
+ handleExtend = false
706
+ } = options;
707
+ if (!(0, import_types.isObjectLike)(obj) || (0, import_node.isDOMNode)(obj)) {
724
708
  return obj;
725
- if (visited.has(obj))
709
+ }
710
+ if (visited.has(obj)) {
726
711
  return visited.get(obj);
727
- const clone2 = (0, import_types.isArray)(obj) ? [] : {};
712
+ }
713
+ const clone2 = targetWindow ? (0, import_types.isArray)(obj) ? new targetWindow.Array() : new targetWindow.Object() : (0, import_types.isArray)(obj) ? [] : {};
728
714
  visited.set(obj, clone2);
729
715
  for (const key in obj) {
730
- if (Object.prototype.hasOwnProperty.call(obj, key) && !exclude.includes(key)) {
731
- const value = obj[key];
732
- if ((0, import_node.isDOMNode)(value)) {
733
- clone2[key] = value;
734
- } else if (key === "extend" && (0, import_types.isArray)(value)) {
735
- clone2[key] = (0, import_array.mergeArray)(value, exclude);
736
- } else if ((0, import_types.isObjectLike)(value)) {
737
- clone2[key] = deepClone2(value, exclude, cleanUndefined, visited);
738
- } else {
739
- clone2[key] = value;
740
- }
741
- }
742
- }
743
- return clone2;
744
- };
745
- var deepCloneWithExtend = (obj, excludeFrom = ["node"], options = {}, visited = /* @__PURE__ */ new WeakSet()) => {
746
- if ((0, import_types.isObjectLike)(obj)) {
747
- if (visited.has(obj)) {
748
- return obj;
716
+ if (!Object.prototype.hasOwnProperty.call(obj, key))
717
+ continue;
718
+ if (exclude.includes(key) || key.startsWith("__") || key === "__proto__")
719
+ continue;
720
+ const value = obj[key];
721
+ if (cleanUndefined && (0, import_types.isUndefined)(value) || cleanNull && (0, import_types.isNull)(value))
722
+ continue;
723
+ if ((0, import_node.isDOMNode)(value)) {
724
+ clone2[key] = value;
725
+ continue;
749
726
  }
750
- visited.add(obj);
751
- }
752
- const o = options.window ? (0, import_types.isArray)(obj) ? new options.window.Array([]) : new options.window.Object({}) : (0, import_types.isArray)(obj) ? [] : {};
753
- for (const prop in obj) {
754
- if (!Object.prototype.hasOwnProperty.call(obj, prop))
727
+ if (handleExtend && key === "extend" && (0, import_types.isArray)(value)) {
728
+ clone2[key] = (0, import_array.mergeArray)(value, exclude);
755
729
  continue;
756
- const objProp = obj[prop];
757
- if (excludeFrom.includes(prop) || prop.startsWith("__") || options.cleanUndefined && (0, import_types.isUndefined)(objProp) || options.cleanNull && (0, import_types.isNull)(objProp)) {
730
+ }
731
+ if ((0, import_types.isFunction)(value) && targetWindow) {
732
+ clone2[key] = targetWindow.eval("(" + value.toString() + ")");
758
733
  continue;
759
734
  }
760
- if ((0, import_types.isObjectLike)(objProp)) {
761
- o[prop] = deepCloneWithExtend(objProp, excludeFrom, options, visited);
762
- } else if ((0, import_types.isFunction)(objProp) && options.window) {
763
- o[prop] = (options.window || import_globals2.window).eval("(" + objProp.toString() + ")");
735
+ if ((0, import_types.isObjectLike)(value)) {
736
+ clone2[key] = deepClone2(value, {
737
+ ...options,
738
+ visited
739
+ });
764
740
  } else {
765
- o[prop] = objProp;
741
+ clone2[key] = value;
766
742
  }
767
743
  }
768
- return o;
744
+ return clone2;
769
745
  };
770
746
  var deepStringify = (obj, stringified = {}) => {
771
747
  var _a, _b;
@@ -1784,7 +1760,7 @@ var require_component = __commonJS({
1784
1760
  if (newChild === null)
1785
1761
  assignChild(null);
1786
1762
  else if (!childElem)
1787
- assignChild((0, import__.deepCloneWithExtend)(newChild));
1763
+ assignChild((0, import__.deepClone)(newChild));
1788
1764
  else {
1789
1765
  const isSugarChildElem = checkIfSugar(childElem, parent, key);
1790
1766
  if (isSugarChildElem)
@@ -2296,11 +2272,11 @@ var require_cjs3 = __commonJS({
2296
2272
  var joinArrays = (...arrays) => {
2297
2273
  return [].concat(...arrays);
2298
2274
  };
2299
- var mergeArray = (arr, excludeFrom = []) => {
2300
- return arr.reduce((a, c) => (0, import_object.deepMerge)(a, (0, import_object.deepCloneWithExtend)(c, excludeFrom), excludeFrom), {});
2275
+ var mergeArray = (arr, exclude = []) => {
2276
+ return arr.reduce((a, c) => (0, import_object.deepMerge)(a, (0, import_object.deepClone)(c, { exclude }), exclude), {});
2301
2277
  };
2302
2278
  var mergeAndCloneIfArray = (obj) => {
2303
- return (0, import_types.isArray)(obj) ? mergeArray(obj) : (0, import_object.deepCloneWithExtend)(obj);
2279
+ return (0, import_types.isArray)(obj) ? mergeArray(obj) : (0, import_object.deepClone)(obj);
2304
2280
  };
2305
2281
  var cutArrayBeforeValue = (arr, value) => {
2306
2282
  const index = arr.indexOf(value);
@@ -2545,8 +2521,6 @@ var require_cjs3 = __commonJS({
2545
2521
  createNestedObject: () => createNestedObject,
2546
2522
  createObjectWithoutPrototype: () => createObjectWithoutPrototype,
2547
2523
  deepClone: () => deepClone2,
2548
- deepCloneExclude: () => deepCloneExclude,
2549
- deepCloneWithExtend: () => deepCloneWithExtend,
2550
2524
  deepContains: () => deepContains,
2551
2525
  deepDestringify: () => deepDestringify,
2552
2526
  deepDiff: () => deepDiff,
@@ -2640,78 +2614,56 @@ var require_cjs3 = __commonJS({
2640
2614
  }
2641
2615
  return o;
2642
2616
  };
2643
- var deepCloneExclude = (obj, excludeFrom = []) => {
2644
- if ((0, import_types.isArray)(obj)) {
2645
- return obj.map((x) => deepCloneExclude(x, excludeFrom));
2646
- }
2647
- const o = {};
2648
- for (const k in obj) {
2649
- const hasOwnProperty2 = Object.prototype.hasOwnProperty.call(obj, k);
2650
- if (!hasOwnProperty2 || excludeFrom.includes(k) || k.startsWith("__"))
2651
- continue;
2652
- let v = obj[k];
2653
- if (k === "extend" && (0, import_types.isArray)(v)) {
2654
- v = mergeArrayExclude(v, excludeFrom);
2655
- }
2656
- if ((0, import_types.isArray)(v)) {
2657
- o[k] = v.map((x) => deepCloneExclude(x, excludeFrom));
2658
- } else if ((0, import_types.isObject)(v)) {
2659
- o[k] = deepCloneExclude(v, excludeFrom);
2660
- } else
2661
- o[k] = v;
2662
- }
2663
- return o;
2664
- };
2665
- var mergeArrayExclude = (arr, excl = []) => {
2666
- return arr.reduce((acc, curr) => deepMerge2(acc, deepCloneExclude(curr, excl)), {});
2617
+ var mergeArrayExclude = (arr, exclude = []) => {
2618
+ return arr.reduce((acc, curr) => deepMerge2(acc, deepClone2(curr, { exclude })), {});
2667
2619
  };
2668
- var deepClone2 = (obj, exclude = [], cleanUndefined = false, visited = /* @__PURE__ */ new WeakMap()) => {
2669
- if (!(0, import_types.isObjectLike)(obj) || (0, import_node.isDOMNode)(obj))
2620
+ var deepClone2 = (obj, options = {}) => {
2621
+ const {
2622
+ exclude = [],
2623
+ cleanUndefined = false,
2624
+ cleanNull = false,
2625
+ window: targetWindow,
2626
+ visited = /* @__PURE__ */ new WeakMap(),
2627
+ handleExtend = false
2628
+ } = options;
2629
+ if (!(0, import_types.isObjectLike)(obj) || (0, import_node.isDOMNode)(obj)) {
2670
2630
  return obj;
2671
- if (visited.has(obj))
2631
+ }
2632
+ if (visited.has(obj)) {
2672
2633
  return visited.get(obj);
2673
- const clone2 = (0, import_types.isArray)(obj) ? [] : {};
2634
+ }
2635
+ const clone2 = targetWindow ? (0, import_types.isArray)(obj) ? new targetWindow.Array() : new targetWindow.Object() : (0, import_types.isArray)(obj) ? [] : {};
2674
2636
  visited.set(obj, clone2);
2675
2637
  for (const key in obj) {
2676
- if (Object.prototype.hasOwnProperty.call(obj, key) && !exclude.includes(key)) {
2677
- const value = obj[key];
2678
- if ((0, import_node.isDOMNode)(value)) {
2679
- clone2[key] = value;
2680
- } else if (key === "extend" && (0, import_types.isArray)(value)) {
2681
- clone2[key] = (0, import_array.mergeArray)(value, exclude);
2682
- } else if ((0, import_types.isObjectLike)(value)) {
2683
- clone2[key] = deepClone2(value, exclude, cleanUndefined, visited);
2684
- } else {
2685
- clone2[key] = value;
2686
- }
2687
- }
2688
- }
2689
- return clone2;
2690
- };
2691
- var deepCloneWithExtend = (obj, excludeFrom = ["node"], options = {}, visited = /* @__PURE__ */ new WeakSet()) => {
2692
- if ((0, import_types.isObjectLike)(obj)) {
2693
- if (visited.has(obj)) {
2694
- return obj;
2638
+ if (!Object.prototype.hasOwnProperty.call(obj, key))
2639
+ continue;
2640
+ if (exclude.includes(key) || key.startsWith("__") || key === "__proto__")
2641
+ continue;
2642
+ const value = obj[key];
2643
+ if (cleanUndefined && (0, import_types.isUndefined)(value) || cleanNull && (0, import_types.isNull)(value))
2644
+ continue;
2645
+ if ((0, import_node.isDOMNode)(value)) {
2646
+ clone2[key] = value;
2647
+ continue;
2695
2648
  }
2696
- visited.add(obj);
2697
- }
2698
- const o = options.window ? (0, import_types.isArray)(obj) ? new options.window.Array([]) : new options.window.Object({}) : (0, import_types.isArray)(obj) ? [] : {};
2699
- for (const prop in obj) {
2700
- if (!Object.prototype.hasOwnProperty.call(obj, prop))
2649
+ if (handleExtend && key === "extend" && (0, import_types.isArray)(value)) {
2650
+ clone2[key] = (0, import_array.mergeArray)(value, exclude);
2701
2651
  continue;
2702
- const objProp = obj[prop];
2703
- if (excludeFrom.includes(prop) || prop.startsWith("__") || options.cleanUndefined && (0, import_types.isUndefined)(objProp) || options.cleanNull && (0, import_types.isNull)(objProp)) {
2652
+ }
2653
+ if ((0, import_types.isFunction)(value) && targetWindow) {
2654
+ clone2[key] = targetWindow.eval("(" + value.toString() + ")");
2704
2655
  continue;
2705
2656
  }
2706
- if ((0, import_types.isObjectLike)(objProp)) {
2707
- o[prop] = deepCloneWithExtend(objProp, excludeFrom, options, visited);
2708
- } else if ((0, import_types.isFunction)(objProp) && options.window) {
2709
- o[prop] = (options.window || import_globals2.window).eval("(" + objProp.toString() + ")");
2657
+ if ((0, import_types.isObjectLike)(value)) {
2658
+ clone2[key] = deepClone2(value, {
2659
+ ...options,
2660
+ visited
2661
+ });
2710
2662
  } else {
2711
- o[prop] = objProp;
2663
+ clone2[key] = value;
2712
2664
  }
2713
2665
  }
2714
- return o;
2666
+ return clone2;
2715
2667
  };
2716
2668
  var deepStringify = (obj, stringified = {}) => {
2717
2669
  var _a, _b;
@@ -3720,7 +3672,7 @@ var require_cjs3 = __commonJS({
3720
3672
  if (newChild === null)
3721
3673
  assignChild(null);
3722
3674
  else if (!childElem)
3723
- assignChild((0, import__.deepCloneWithExtend)(newChild));
3675
+ assignChild((0, import__.deepClone)(newChild));
3724
3676
  else {
3725
3677
  const isSugarChildElem = checkIfSugar(childElem, parent, key);
3726
3678
  if (isSugarChildElem)
@@ -346,11 +346,11 @@ var require_array = __commonJS({
346
346
  var joinArrays = (...arrays) => {
347
347
  return [].concat(...arrays);
348
348
  };
349
- var mergeArray = (arr, excludeFrom = []) => {
350
- return arr.reduce((a, c) => (0, import_object.deepMerge)(a, (0, import_object.deepCloneWithExtend)(c, excludeFrom), excludeFrom), {});
349
+ var mergeArray = (arr, exclude = []) => {
350
+ return arr.reduce((a, c) => (0, import_object.deepMerge)(a, (0, import_object.deepClone)(c, { exclude }), exclude), {});
351
351
  };
352
352
  var mergeAndCloneIfArray = (obj) => {
353
- return (0, import_types.isArray)(obj) ? mergeArray(obj) : (0, import_object.deepCloneWithExtend)(obj);
353
+ return (0, import_types.isArray)(obj) ? mergeArray(obj) : (0, import_object.deepClone)(obj);
354
354
  };
355
355
  var cutArrayBeforeValue = (arr, value) => {
356
356
  const index = arr.indexOf(value);
@@ -599,8 +599,6 @@ var require_object = __commonJS({
599
599
  createNestedObject: () => createNestedObject,
600
600
  createObjectWithoutPrototype: () => createObjectWithoutPrototype,
601
601
  deepClone: () => deepClone2,
602
- deepCloneExclude: () => deepCloneExclude,
603
- deepCloneWithExtend: () => deepCloneWithExtend,
604
602
  deepContains: () => deepContains,
605
603
  deepDestringify: () => deepDestringify,
606
604
  deepDiff: () => deepDiff,
@@ -694,78 +692,56 @@ var require_object = __commonJS({
694
692
  }
695
693
  return o;
696
694
  };
697
- var deepCloneExclude = (obj, excludeFrom = []) => {
698
- if ((0, import_types.isArray)(obj)) {
699
- return obj.map((x) => deepCloneExclude(x, excludeFrom));
700
- }
701
- const o = {};
702
- for (const k in obj) {
703
- const hasOwnProperty2 = Object.prototype.hasOwnProperty.call(obj, k);
704
- if (!hasOwnProperty2 || excludeFrom.includes(k) || k.startsWith("__"))
705
- continue;
706
- let v = obj[k];
707
- if (k === "extend" && (0, import_types.isArray)(v)) {
708
- v = mergeArrayExclude(v, excludeFrom);
709
- }
710
- if ((0, import_types.isArray)(v)) {
711
- o[k] = v.map((x) => deepCloneExclude(x, excludeFrom));
712
- } else if ((0, import_types.isObject)(v)) {
713
- o[k] = deepCloneExclude(v, excludeFrom);
714
- } else
715
- o[k] = v;
716
- }
717
- return o;
695
+ var mergeArrayExclude = (arr, exclude = []) => {
696
+ return arr.reduce((acc, curr) => deepMerge2(acc, deepClone2(curr, { exclude })), {});
718
697
  };
719
- var mergeArrayExclude = (arr, excl = []) => {
720
- return arr.reduce((acc, curr) => deepMerge2(acc, deepCloneExclude(curr, excl)), {});
721
- };
722
- var deepClone2 = (obj, exclude = [], cleanUndefined = false, visited = /* @__PURE__ */ new WeakMap()) => {
723
- if (!(0, import_types.isObjectLike)(obj) || (0, import_node.isDOMNode)(obj))
698
+ var deepClone2 = (obj, options = {}) => {
699
+ const {
700
+ exclude = [],
701
+ cleanUndefined = false,
702
+ cleanNull = false,
703
+ window: targetWindow,
704
+ visited = /* @__PURE__ */ new WeakMap(),
705
+ handleExtend = false
706
+ } = options;
707
+ if (!(0, import_types.isObjectLike)(obj) || (0, import_node.isDOMNode)(obj)) {
724
708
  return obj;
725
- if (visited.has(obj))
709
+ }
710
+ if (visited.has(obj)) {
726
711
  return visited.get(obj);
727
- const clone2 = (0, import_types.isArray)(obj) ? [] : {};
712
+ }
713
+ const clone2 = targetWindow ? (0, import_types.isArray)(obj) ? new targetWindow.Array() : new targetWindow.Object() : (0, import_types.isArray)(obj) ? [] : {};
728
714
  visited.set(obj, clone2);
729
715
  for (const key in obj) {
730
- if (Object.prototype.hasOwnProperty.call(obj, key) && !exclude.includes(key)) {
731
- const value = obj[key];
732
- if ((0, import_node.isDOMNode)(value)) {
733
- clone2[key] = value;
734
- } else if (key === "extend" && (0, import_types.isArray)(value)) {
735
- clone2[key] = (0, import_array.mergeArray)(value, exclude);
736
- } else if ((0, import_types.isObjectLike)(value)) {
737
- clone2[key] = deepClone2(value, exclude, cleanUndefined, visited);
738
- } else {
739
- clone2[key] = value;
740
- }
741
- }
742
- }
743
- return clone2;
744
- };
745
- var deepCloneWithExtend = (obj, excludeFrom = ["node"], options = {}, visited = /* @__PURE__ */ new WeakSet()) => {
746
- if ((0, import_types.isObjectLike)(obj)) {
747
- if (visited.has(obj)) {
748
- return obj;
716
+ if (!Object.prototype.hasOwnProperty.call(obj, key))
717
+ continue;
718
+ if (exclude.includes(key) || key.startsWith("__") || key === "__proto__")
719
+ continue;
720
+ const value = obj[key];
721
+ if (cleanUndefined && (0, import_types.isUndefined)(value) || cleanNull && (0, import_types.isNull)(value))
722
+ continue;
723
+ if ((0, import_node.isDOMNode)(value)) {
724
+ clone2[key] = value;
725
+ continue;
749
726
  }
750
- visited.add(obj);
751
- }
752
- const o = options.window ? (0, import_types.isArray)(obj) ? new options.window.Array([]) : new options.window.Object({}) : (0, import_types.isArray)(obj) ? [] : {};
753
- for (const prop in obj) {
754
- if (!Object.prototype.hasOwnProperty.call(obj, prop))
727
+ if (handleExtend && key === "extend" && (0, import_types.isArray)(value)) {
728
+ clone2[key] = (0, import_array.mergeArray)(value, exclude);
755
729
  continue;
756
- const objProp = obj[prop];
757
- if (excludeFrom.includes(prop) || prop.startsWith("__") || options.cleanUndefined && (0, import_types.isUndefined)(objProp) || options.cleanNull && (0, import_types.isNull)(objProp)) {
730
+ }
731
+ if ((0, import_types.isFunction)(value) && targetWindow) {
732
+ clone2[key] = targetWindow.eval("(" + value.toString() + ")");
758
733
  continue;
759
734
  }
760
- if ((0, import_types.isObjectLike)(objProp)) {
761
- o[prop] = deepCloneWithExtend(objProp, excludeFrom, options, visited);
762
- } else if ((0, import_types.isFunction)(objProp) && options.window) {
763
- o[prop] = (options.window || import_globals2.window).eval("(" + objProp.toString() + ")");
735
+ if ((0, import_types.isObjectLike)(value)) {
736
+ clone2[key] = deepClone2(value, {
737
+ ...options,
738
+ visited
739
+ });
764
740
  } else {
765
- o[prop] = objProp;
741
+ clone2[key] = value;
766
742
  }
767
743
  }
768
- return o;
744
+ return clone2;
769
745
  };
770
746
  var deepStringify = (obj, stringified = {}) => {
771
747
  var _a, _b;
@@ -1784,7 +1760,7 @@ var require_component = __commonJS({
1784
1760
  if (newChild === null)
1785
1761
  assignChild(null);
1786
1762
  else if (!childElem)
1787
- assignChild((0, import__.deepCloneWithExtend)(newChild));
1763
+ assignChild((0, import__.deepClone)(newChild));
1788
1764
  else {
1789
1765
  const isSugarChildElem = checkIfSugar(childElem, parent, key);
1790
1766
  if (isSugarChildElem)
@@ -2260,11 +2236,11 @@ var require_cjs2 = __commonJS({
2260
2236
  var joinArrays = (...arrays) => {
2261
2237
  return [].concat(...arrays);
2262
2238
  };
2263
- var mergeArray = (arr, excludeFrom = []) => {
2264
- return arr.reduce((a, c) => (0, import_object.deepMerge)(a, (0, import_object.deepCloneWithExtend)(c, excludeFrom), excludeFrom), {});
2239
+ var mergeArray = (arr, exclude = []) => {
2240
+ return arr.reduce((a, c) => (0, import_object.deepMerge)(a, (0, import_object.deepClone)(c, { exclude }), exclude), {});
2265
2241
  };
2266
2242
  var mergeAndCloneIfArray = (obj) => {
2267
- return (0, import_types.isArray)(obj) ? mergeArray(obj) : (0, import_object.deepCloneWithExtend)(obj);
2243
+ return (0, import_types.isArray)(obj) ? mergeArray(obj) : (0, import_object.deepClone)(obj);
2268
2244
  };
2269
2245
  var cutArrayBeforeValue = (arr, value) => {
2270
2246
  const index = arr.indexOf(value);
@@ -2509,8 +2485,6 @@ var require_cjs2 = __commonJS({
2509
2485
  createNestedObject: () => createNestedObject,
2510
2486
  createObjectWithoutPrototype: () => createObjectWithoutPrototype,
2511
2487
  deepClone: () => deepClone2,
2512
- deepCloneExclude: () => deepCloneExclude,
2513
- deepCloneWithExtend: () => deepCloneWithExtend,
2514
2488
  deepContains: () => deepContains,
2515
2489
  deepDestringify: () => deepDestringify,
2516
2490
  deepDiff: () => deepDiff,
@@ -2604,78 +2578,56 @@ var require_cjs2 = __commonJS({
2604
2578
  }
2605
2579
  return o;
2606
2580
  };
2607
- var deepCloneExclude = (obj, excludeFrom = []) => {
2608
- if ((0, import_types.isArray)(obj)) {
2609
- return obj.map((x) => deepCloneExclude(x, excludeFrom));
2610
- }
2611
- const o = {};
2612
- for (const k in obj) {
2613
- const hasOwnProperty2 = Object.prototype.hasOwnProperty.call(obj, k);
2614
- if (!hasOwnProperty2 || excludeFrom.includes(k) || k.startsWith("__"))
2615
- continue;
2616
- let v = obj[k];
2617
- if (k === "extend" && (0, import_types.isArray)(v)) {
2618
- v = mergeArrayExclude(v, excludeFrom);
2619
- }
2620
- if ((0, import_types.isArray)(v)) {
2621
- o[k] = v.map((x) => deepCloneExclude(x, excludeFrom));
2622
- } else if ((0, import_types.isObject)(v)) {
2623
- o[k] = deepCloneExclude(v, excludeFrom);
2624
- } else
2625
- o[k] = v;
2626
- }
2627
- return o;
2628
- };
2629
- var mergeArrayExclude = (arr, excl = []) => {
2630
- return arr.reduce((acc, curr) => deepMerge2(acc, deepCloneExclude(curr, excl)), {});
2581
+ var mergeArrayExclude = (arr, exclude = []) => {
2582
+ return arr.reduce((acc, curr) => deepMerge2(acc, deepClone2(curr, { exclude })), {});
2631
2583
  };
2632
- var deepClone2 = (obj, exclude = [], cleanUndefined = false, visited = /* @__PURE__ */ new WeakMap()) => {
2633
- if (!(0, import_types.isObjectLike)(obj) || (0, import_node.isDOMNode)(obj))
2584
+ var deepClone2 = (obj, options = {}) => {
2585
+ const {
2586
+ exclude = [],
2587
+ cleanUndefined = false,
2588
+ cleanNull = false,
2589
+ window: targetWindow,
2590
+ visited = /* @__PURE__ */ new WeakMap(),
2591
+ handleExtend = false
2592
+ } = options;
2593
+ if (!(0, import_types.isObjectLike)(obj) || (0, import_node.isDOMNode)(obj)) {
2634
2594
  return obj;
2635
- if (visited.has(obj))
2595
+ }
2596
+ if (visited.has(obj)) {
2636
2597
  return visited.get(obj);
2637
- const clone2 = (0, import_types.isArray)(obj) ? [] : {};
2598
+ }
2599
+ const clone2 = targetWindow ? (0, import_types.isArray)(obj) ? new targetWindow.Array() : new targetWindow.Object() : (0, import_types.isArray)(obj) ? [] : {};
2638
2600
  visited.set(obj, clone2);
2639
2601
  for (const key in obj) {
2640
- if (Object.prototype.hasOwnProperty.call(obj, key) && !exclude.includes(key)) {
2641
- const value = obj[key];
2642
- if ((0, import_node.isDOMNode)(value)) {
2643
- clone2[key] = value;
2644
- } else if (key === "extend" && (0, import_types.isArray)(value)) {
2645
- clone2[key] = (0, import_array.mergeArray)(value, exclude);
2646
- } else if ((0, import_types.isObjectLike)(value)) {
2647
- clone2[key] = deepClone2(value, exclude, cleanUndefined, visited);
2648
- } else {
2649
- clone2[key] = value;
2650
- }
2651
- }
2652
- }
2653
- return clone2;
2654
- };
2655
- var deepCloneWithExtend = (obj, excludeFrom = ["node"], options = {}, visited = /* @__PURE__ */ new WeakSet()) => {
2656
- if ((0, import_types.isObjectLike)(obj)) {
2657
- if (visited.has(obj)) {
2658
- return obj;
2602
+ if (!Object.prototype.hasOwnProperty.call(obj, key))
2603
+ continue;
2604
+ if (exclude.includes(key) || key.startsWith("__") || key === "__proto__")
2605
+ continue;
2606
+ const value = obj[key];
2607
+ if (cleanUndefined && (0, import_types.isUndefined)(value) || cleanNull && (0, import_types.isNull)(value))
2608
+ continue;
2609
+ if ((0, import_node.isDOMNode)(value)) {
2610
+ clone2[key] = value;
2611
+ continue;
2659
2612
  }
2660
- visited.add(obj);
2661
- }
2662
- const o = options.window ? (0, import_types.isArray)(obj) ? new options.window.Array([]) : new options.window.Object({}) : (0, import_types.isArray)(obj) ? [] : {};
2663
- for (const prop in obj) {
2664
- if (!Object.prototype.hasOwnProperty.call(obj, prop))
2613
+ if (handleExtend && key === "extend" && (0, import_types.isArray)(value)) {
2614
+ clone2[key] = (0, import_array.mergeArray)(value, exclude);
2665
2615
  continue;
2666
- const objProp = obj[prop];
2667
- if (excludeFrom.includes(prop) || prop.startsWith("__") || options.cleanUndefined && (0, import_types.isUndefined)(objProp) || options.cleanNull && (0, import_types.isNull)(objProp)) {
2616
+ }
2617
+ if ((0, import_types.isFunction)(value) && targetWindow) {
2618
+ clone2[key] = targetWindow.eval("(" + value.toString() + ")");
2668
2619
  continue;
2669
2620
  }
2670
- if ((0, import_types.isObjectLike)(objProp)) {
2671
- o[prop] = deepCloneWithExtend(objProp, excludeFrom, options, visited);
2672
- } else if ((0, import_types.isFunction)(objProp) && options.window) {
2673
- o[prop] = (options.window || import_globals2.window).eval("(" + objProp.toString() + ")");
2621
+ if ((0, import_types.isObjectLike)(value)) {
2622
+ clone2[key] = deepClone2(value, {
2623
+ ...options,
2624
+ visited
2625
+ });
2674
2626
  } else {
2675
- o[prop] = objProp;
2627
+ clone2[key] = value;
2676
2628
  }
2677
2629
  }
2678
- return o;
2630
+ return clone2;
2679
2631
  };
2680
2632
  var deepStringify = (obj, stringified = {}) => {
2681
2633
  var _a, _b;
@@ -3684,7 +3636,7 @@ var require_cjs2 = __commonJS({
3684
3636
  if (newChild === null)
3685
3637
  assignChild(null);
3686
3638
  else if (!childElem)
3687
- assignChild((0, import__.deepCloneWithExtend)(newChild));
3639
+ assignChild((0, import__.deepClone)(newChild));
3688
3640
  else {
3689
3641
  const isSugarChildElem = checkIfSugar(childElem, parent, key);
3690
3642
  if (isSugarChildElem)