@symbo.ls/scratch 2.11.430 → 2.11.439

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.
@@ -133,13 +133,13 @@ var require_globals = __commonJS({
133
133
  document: () => document2,
134
134
  global: () => global,
135
135
  self: () => self,
136
- window: () => window
136
+ window: () => window2
137
137
  });
138
138
  module2.exports = __toCommonJS2(globals_exports);
139
139
  var global = globalThis;
140
140
  var self = globalThis;
141
- var window = globalThis;
142
- var document2 = window.document;
141
+ var window2 = globalThis;
142
+ var document2 = window2.document;
143
143
  }
144
144
  });
145
145
 
@@ -300,7 +300,6 @@ var require_array = __commonJS({
300
300
  addItemAfterEveryElement: () => addItemAfterEveryElement,
301
301
  arrayContainsOtherArray: () => arrayContainsOtherArray,
302
302
  arraysEqual: () => arraysEqual,
303
- createNestedObject: () => createNestedObject,
304
303
  cutArrayAfterValue: () => cutArrayAfterValue,
305
304
  cutArrayBeforeValue: () => cutArrayBeforeValue,
306
305
  getFrequencyInArray: () => getFrequencyInArray,
@@ -367,22 +366,6 @@ var require_array = __commonJS({
367
366
  }
368
367
  return arr;
369
368
  };
370
- var createNestedObject = (arr, lastValue) => {
371
- const nestedObject = {};
372
- if (arr.length === 0) {
373
- return lastValue;
374
- }
375
- arr.reduce((obj, value, index) => {
376
- if (!obj[value]) {
377
- obj[value] = {};
378
- }
379
- if (index === arr.length - 1 && lastValue) {
380
- obj[value] = lastValue;
381
- }
382
- return obj[value];
383
- }, nestedObject);
384
- return nestedObject;
385
- };
386
369
  var removeValueFromArray = (arr, value) => {
387
370
  const index = arr.indexOf(value);
388
371
  if (index > -1) {
@@ -603,8 +586,8 @@ var require_object = __commonJS({
603
586
  var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
604
587
  var object_exports = {};
605
588
  __export2(object_exports, {
606
- checkIfKeyIsComponent: () => checkIfKeyIsComponent,
607
589
  clone: () => clone,
590
+ createNestedObject: () => createNestedObject,
608
591
  createObjectWithoutPrototype: () => createObjectWithoutPrototype,
609
592
  deepClone: () => deepClone2,
610
593
  deepCloneExclude: () => deepCloneExclude,
@@ -615,13 +598,12 @@ var require_object = __commonJS({
615
598
  deepMerge: () => deepMerge2,
616
599
  deepStringify: () => deepStringify,
617
600
  detachFunctionsFromObject: () => detachFunctionsFromObject,
601
+ detectInfiniteLoop: () => detectInfiniteLoop,
618
602
  diff: () => diff,
619
603
  diffArrays: () => diffArrays,
620
604
  diffObjects: () => diffObjects,
621
605
  exec: () => exec,
622
606
  flattenRecursive: () => flattenRecursive,
623
- getChildrenComponentsByKey: () => getChildrenComponentsByKey,
624
- getExtendsInElement: () => getExtendsInElement,
625
607
  hasOwnProperty: () => hasOwnProperty,
626
608
  isEmpty: () => isEmpty,
627
609
  isEmptyObject: () => isEmptyObject,
@@ -636,6 +618,7 @@ var require_object = __commonJS({
636
618
  overwriteDeep: () => overwriteDeep,
637
619
  overwriteShallow: () => overwriteShallow,
638
620
  removeFromObject: () => removeFromObject,
621
+ removeNestedKeyByPath: () => removeNestedKeyByPath,
639
622
  stringToObject: () => stringToObject
640
623
  });
641
624
  module2.exports = __toCommonJS2(object_exports);
@@ -644,6 +627,7 @@ var require_object = __commonJS({
644
627
  var import_array = require_array();
645
628
  var import_string = require_string();
646
629
  var import_node = require_node();
630
+ var ENV = "development";
647
631
  var exec = (param, element, state, context) => {
648
632
  if ((0, import_types.isFunction)(param)) {
649
633
  return param(
@@ -755,6 +739,8 @@ var require_object = __commonJS({
755
739
  continue;
756
740
  if ((0, import_types.isObjectLike)(objProp)) {
757
741
  o[prop] = deepCloneWithExtend(objProp, excludeFrom, options);
742
+ } else if ((0, import_types.isFunction)(objProp) && options.window) {
743
+ o[prop] = (options.window || import_globals.window).eval("(" + objProp.toString() + ")");
758
744
  } else
759
745
  o[prop] = objProp;
760
746
  }
@@ -998,16 +984,23 @@ var require_object = __commonJS({
998
984
  }
999
985
  return obj;
1000
986
  };
1001
- var overwriteDeep = (obj, params, excludeFrom = []) => {
987
+ var overwriteDeep = (obj, params, excludeFrom = [], visited = /* @__PURE__ */ new WeakMap()) => {
988
+ if (!(0, import_types.isObjectLike)(obj) || !(0, import_types.isObjectLike)(params) || (0, import_node.isDOMNode)(obj) || (0, import_node.isDOMNode)(params)) {
989
+ return params;
990
+ }
991
+ if (visited.has(obj)) {
992
+ return visited.get(obj);
993
+ }
994
+ visited.set(obj, obj);
1002
995
  for (const e in params) {
1003
- if (e === "__ref")
1004
- continue;
1005
- if (excludeFrom.includes(e) || e.startsWith("__"))
996
+ if (e === "__ref" || excludeFrom.includes(e) || e.startsWith("__"))
1006
997
  continue;
1007
998
  const objProp = obj[e];
1008
999
  const paramsProp = params[e];
1009
- if ((0, import_types.isObjectLike)(objProp) && (0, import_types.isObjectLike)(paramsProp)) {
1010
- overwriteDeep(objProp, paramsProp);
1000
+ if ((0, import_node.isDOMNode)(paramsProp)) {
1001
+ obj[e] = paramsProp;
1002
+ } else if ((0, import_types.isObjectLike)(objProp) && (0, import_types.isObjectLike)(paramsProp)) {
1003
+ obj[e] = overwriteDeep(objProp, paramsProp, excludeFrom, visited);
1011
1004
  } else if (paramsProp !== void 0) {
1012
1005
  obj[e] = paramsProp;
1013
1006
  }
@@ -1115,53 +1108,60 @@ var require_object = __commonJS({
1115
1108
  }
1116
1109
  return newObj;
1117
1110
  };
1118
- var checkIfKeyIsComponent = (key) => {
1119
- const isFirstKeyString = (0, import_types.isString)(key);
1120
- if (!isFirstKeyString)
1121
- return;
1122
- const firstCharKey = key.slice(0, 1);
1123
- return /^[A-Z]*$/.test(firstCharKey);
1111
+ var createNestedObject = (arr, lastValue) => {
1112
+ const nestedObject = {};
1113
+ if (arr.length === 0) {
1114
+ return lastValue;
1115
+ }
1116
+ arr.reduce((obj, value, index) => {
1117
+ if (!obj[value]) {
1118
+ obj[value] = {};
1119
+ }
1120
+ if (index === arr.length - 1 && lastValue) {
1121
+ obj[value] = lastValue;
1122
+ }
1123
+ return obj[value];
1124
+ }, nestedObject);
1125
+ return nestedObject;
1124
1126
  };
1125
- var getChildrenComponentsByKey = (key, el) => {
1126
- if (key === el.key || el.__ref.__componentKey === key) {
1127
- return el;
1127
+ var removeNestedKeyByPath = (obj, path) => {
1128
+ if (!Array.isArray(path)) {
1129
+ throw new Error("Path must be an array.");
1128
1130
  }
1129
- if (el.extend) {
1130
- const foundString = (0, import_types.isString)(el.extend) && el.extend === key;
1131
- const foundInArray = (0, import_types.isArray)(el.extend) && el.extend.filter((v) => v === key).length;
1132
- if (foundString || foundInArray)
1133
- return el;
1131
+ let current = obj;
1132
+ for (let i = 0; i < path.length - 1; i++) {
1133
+ if (current[path[i]] === void 0) {
1134
+ return;
1135
+ }
1136
+ current = current[path[i]];
1134
1137
  }
1135
- if (el.parent && el.parent.childExtend) {
1136
- const foundString = (0, import_types.isString)(el.parent.childExtend) && el.parent.childExtend === key;
1137
- const foundInArray = (0, import_types.isArray)(el.parent.childExtend) && el.parent.childExtend.filter((v) => v === key).length;
1138
- if (foundString || foundInArray)
1139
- return el;
1138
+ const lastKey = path[path.length - 1];
1139
+ if (current && Object.hasOwnProperty.call(current, lastKey)) {
1140
+ delete current[lastKey];
1140
1141
  }
1141
1142
  };
1142
- var getExtendsInElement = (obj) => {
1143
- let result = [];
1144
- function traverse(o) {
1145
- for (const key in o) {
1146
- if (Object.hasOwnProperty.call(o, key)) {
1147
- if (checkIfKeyIsComponent(key)) {
1148
- result.push(key);
1149
- }
1150
- if (key === "extend") {
1151
- if (typeof o[key] === "string") {
1152
- result.push(o[key]);
1153
- } else if (Array.isArray(o[key])) {
1154
- result = result.concat(o[key]);
1155
- }
1156
- }
1157
- if (typeof o[key] === "object" && o[key] !== null) {
1158
- traverse(o[key]);
1143
+ var detectInfiniteLoop = (arr) => {
1144
+ const maxRepeats = 10;
1145
+ let pattern = [];
1146
+ let repeatCount = 0;
1147
+ for (let i = 0; i < arr.length; i++) {
1148
+ if (pattern.length < 2) {
1149
+ pattern.push(arr[i]);
1150
+ } else {
1151
+ if (arr[i] === pattern[i % 2]) {
1152
+ repeatCount++;
1153
+ } else {
1154
+ pattern = [arr[i - 1], arr[i]];
1155
+ repeatCount = 1;
1156
+ }
1157
+ if (repeatCount >= maxRepeats * 2) {
1158
+ if (ENV === "test" || ENV === "development") {
1159
+ console.warn("Warning: Potential infinite loop detected due to repeated sequence:", pattern);
1159
1160
  }
1161
+ return true;
1160
1162
  }
1161
1163
  }
1162
1164
  }
1163
- traverse(obj);
1164
- return result;
1165
1165
  };
1166
1166
  }
1167
1167
  });
@@ -1189,6 +1189,7 @@ var require_function = __commonJS({
1189
1189
  var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
1190
1190
  var function_exports = {};
1191
1191
  __export2(function_exports, {
1192
+ cloneFunction: () => cloneFunction,
1192
1193
  debounce: () => debounce,
1193
1194
  debounceOnContext: () => debounceOnContext,
1194
1195
  isStringFunction: () => isStringFunction,
@@ -1238,6 +1239,17 @@ var require_function = __commonJS({
1238
1239
  const functionRegex = /^((function\s*\([^)]*\)\s*\{[^}]*\})|(\([^)]*\)\s*=>))/;
1239
1240
  return functionRegex.test(inputString);
1240
1241
  };
1242
+ function cloneFunction(fn, win = window) {
1243
+ const temp = function() {
1244
+ return fn.apply(win, arguments);
1245
+ };
1246
+ for (const key in fn) {
1247
+ if (Object.hasOwnProperty.call(fn, key)) {
1248
+ temp[key] = fn[key];
1249
+ }
1250
+ }
1251
+ return temp;
1252
+ }
1241
1253
  }
1242
1254
  });
1243
1255
 
@@ -1507,6 +1519,172 @@ var require_tags = __commonJS({
1507
1519
  }
1508
1520
  });
1509
1521
 
1522
+ // ../../../domql/packages/utils/dist/cjs/component.js
1523
+ var require_component = __commonJS({
1524
+ "../../../domql/packages/utils/dist/cjs/component.js"(exports, module2) {
1525
+ "use strict";
1526
+ var __defProp2 = Object.defineProperty;
1527
+ var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
1528
+ var __getOwnPropNames2 = Object.getOwnPropertyNames;
1529
+ var __hasOwnProp2 = Object.prototype.hasOwnProperty;
1530
+ var __export2 = (target, all) => {
1531
+ for (var name in all)
1532
+ __defProp2(target, name, { get: all[name], enumerable: true });
1533
+ };
1534
+ var __copyProps2 = (to, from, except, desc) => {
1535
+ if (from && typeof from === "object" || typeof from === "function") {
1536
+ for (let key of __getOwnPropNames2(from))
1537
+ if (!__hasOwnProp2.call(to, key) && key !== except)
1538
+ __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
1539
+ }
1540
+ return to;
1541
+ };
1542
+ var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
1543
+ var component_exports = {};
1544
+ __export2(component_exports, {
1545
+ addAdditionalExtend: () => addAdditionalExtend,
1546
+ applyComponentFromContext: () => applyComponentFromContext,
1547
+ applyKeyComponentAsExtend: () => applyKeyComponentAsExtend,
1548
+ checkIfKeyIsComponent: () => checkIfKeyIsComponent,
1549
+ checkIfKeyIsProperty: () => checkIfKeyIsProperty,
1550
+ extendizeByKey: () => extendizeByKey,
1551
+ getChildrenComponentsByKey: () => getChildrenComponentsByKey,
1552
+ getExtendsInElement: () => getExtendsInElement,
1553
+ hasVariantProp: () => hasVariantProp,
1554
+ isVariant: () => isVariant
1555
+ });
1556
+ module2.exports = __toCommonJS2(component_exports);
1557
+ var import__ = require_cjs();
1558
+ var ENV = "development";
1559
+ var checkIfKeyIsComponent = (key) => {
1560
+ const isFirstKeyString = (0, import__.isString)(key);
1561
+ if (!isFirstKeyString)
1562
+ return;
1563
+ const firstCharKey = key.slice(0, 1);
1564
+ return /^[A-Z]*$/.test(firstCharKey);
1565
+ };
1566
+ var checkIfKeyIsProperty = (key) => {
1567
+ const isFirstKeyString = (0, import__.isString)(key);
1568
+ if (!isFirstKeyString)
1569
+ return;
1570
+ const firstCharKey = key.slice(0, 1);
1571
+ return /^[a-z]*$/.test(firstCharKey);
1572
+ };
1573
+ var addAdditionalExtend = (newExtend, element) => {
1574
+ const { extend: elementExtend } = element;
1575
+ const originalArray = (0, import__.isArray)(elementExtend) ? elementExtend : [elementExtend];
1576
+ const receivedArray = (0, import__.isArray)(newExtend) ? newExtend : [newExtend];
1577
+ const extend = (0, import__.joinArrays)(receivedArray, originalArray);
1578
+ return { ...element, extend };
1579
+ };
1580
+ var extendizeByKey = (element, parent, key) => {
1581
+ const { context } = parent;
1582
+ const { tag, extend, props, attr, state, childExtend, childProps, on, if: condition, data } = element;
1583
+ const hasComponentAttrs = extend || childExtend || props || state || on || condition || attr || data;
1584
+ const extendFromKey = key.includes("+") ? key.split("+") : key.includes("_") ? [key.split("_")[0]] : key.includes(".") && !checkIfKeyIsComponent(key.split(".")[1]) ? [key.split(".")[0]] : [key];
1585
+ const isExtendKeyComponent = context && context.components[extendFromKey];
1586
+ if (element === isExtendKeyComponent)
1587
+ return element;
1588
+ else if (!hasComponentAttrs || childProps) {
1589
+ return {
1590
+ extend: extendFromKey,
1591
+ tag,
1592
+ props: { ...element }
1593
+ };
1594
+ } else if (!extend || extend === true) {
1595
+ return {
1596
+ ...element,
1597
+ tag,
1598
+ extend: extendFromKey
1599
+ };
1600
+ } else if (extend) {
1601
+ return addAdditionalExtend(extendFromKey, element);
1602
+ } else if ((0, import__.isFunction)(element)) {
1603
+ return {
1604
+ extend: extendFromKey,
1605
+ tag,
1606
+ props: { ...(0, import__.exec)(element, parent) }
1607
+ };
1608
+ }
1609
+ };
1610
+ var applyKeyComponentAsExtend = (element, parent, key) => {
1611
+ return extendizeByKey(element, parent, key) || element;
1612
+ };
1613
+ var applyComponentFromContext = (element, parent, options) => {
1614
+ const { context } = element;
1615
+ if (!context || !context.components)
1616
+ return;
1617
+ const { components } = context;
1618
+ const { extend } = element;
1619
+ const execExtend = (0, import__.exec)(extend, element);
1620
+ if ((0, import__.isString)(execExtend)) {
1621
+ const componentExists = components[execExtend] || components["smbls." + execExtend];
1622
+ if (componentExists)
1623
+ element.extend = componentExists;
1624
+ else {
1625
+ if ((ENV === "test" || ENV === "development") && options.verbose) {
1626
+ console.warn(execExtend, "is not in library", components, element);
1627
+ console.warn("replacing with ", {});
1628
+ }
1629
+ element.extend = {};
1630
+ }
1631
+ }
1632
+ };
1633
+ var isVariant = (param) => {
1634
+ if (!(0, import__.isString)(param))
1635
+ return;
1636
+ const firstCharKey = param.slice(0, 1);
1637
+ return firstCharKey === ".";
1638
+ };
1639
+ var hasVariantProp = (element) => {
1640
+ const { props } = element;
1641
+ if ((0, import__.isObject)(props) && (0, import__.isString)(props.variant))
1642
+ return true;
1643
+ };
1644
+ var getChildrenComponentsByKey = (key, el) => {
1645
+ if (key === el.key || el.__ref.__componentKey === key) {
1646
+ return el;
1647
+ }
1648
+ if (el.extend) {
1649
+ const foundString = (0, import__.isString)(el.extend) && el.extend === key;
1650
+ const foundInArray = (0, import__.isArray)(el.extend) && el.extend.filter((v) => v === key).length;
1651
+ if (foundString || foundInArray)
1652
+ return el;
1653
+ }
1654
+ if (el.parent && el.parent.childExtend) {
1655
+ const foundString = (0, import__.isString)(el.parent.childExtend) && el.parent.childExtend === key;
1656
+ const foundInArray = (0, import__.isArray)(el.parent.childExtend) && el.parent.childExtend.filter((v) => v === key).length;
1657
+ if (foundString || foundInArray)
1658
+ return el;
1659
+ }
1660
+ };
1661
+ var getExtendsInElement = (obj) => {
1662
+ let result = [];
1663
+ function traverse(o) {
1664
+ for (const key in o) {
1665
+ if (Object.hasOwnProperty.call(o, key)) {
1666
+ if (checkIfKeyIsComponent(key)) {
1667
+ result.push(key);
1668
+ }
1669
+ if (key === "extend") {
1670
+ if (typeof o[key] === "string") {
1671
+ result.push(o[key]);
1672
+ } else if (Array.isArray(o[key])) {
1673
+ result = result.concat(o[key]);
1674
+ }
1675
+ }
1676
+ if (typeof o[key] === "object" && o[key] !== null) {
1677
+ traverse(o[key]);
1678
+ }
1679
+ }
1680
+ }
1681
+ }
1682
+ traverse(obj);
1683
+ return result;
1684
+ };
1685
+ }
1686
+ });
1687
+
1510
1688
  // ../../../domql/packages/utils/dist/cjs/index.js
1511
1689
  var require_cjs = __commonJS({
1512
1690
  "../../../domql/packages/utils/dist/cjs/index.js"(exports, module2) {
@@ -1539,6 +1717,7 @@ var require_cjs = __commonJS({
1539
1717
  __reExport(utils_exports, require_globals(), module2.exports);
1540
1718
  __reExport(utils_exports, require_cookie(), module2.exports);
1541
1719
  __reExport(utils_exports, require_tags(), module2.exports);
1720
+ __reExport(utils_exports, require_component(), module2.exports);
1542
1721
  }
1543
1722
  });
1544
1723