domql 3.5.0 → 3.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/iife/index.js +220 -75
- package/package.json +9 -8
package/dist/iife/index.js
CHANGED
|
@@ -36,7 +36,7 @@ var Domql = (() => {
|
|
|
36
36
|
return (typeof HTMLElement === "object" ? obj instanceof window2.HTMLElement : obj && typeof obj === "object" && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === "string") || false;
|
|
37
37
|
};
|
|
38
38
|
var isDOMNode = (obj) => {
|
|
39
|
-
return typeof window2 !== "undefined" && (obj instanceof window2.Node || obj instanceof window2.Window || obj === window2 || obj === document);
|
|
39
|
+
return typeof window2 !== "undefined" && (window2.Node && obj instanceof window2.Node || window2.Window && obj instanceof window2.Window || obj === window2 || obj === document);
|
|
40
40
|
};
|
|
41
41
|
|
|
42
42
|
// ../utils/dist/esm/types.js
|
|
@@ -780,6 +780,7 @@ var Domql = (() => {
|
|
|
780
780
|
|
|
781
781
|
// ../utils/dist/esm/extends.js
|
|
782
782
|
var ENV2 = process.env.NODE_ENV;
|
|
783
|
+
var isSourcemapEnabled = (options) => options.sourcemap !== false && ENV2 !== "production";
|
|
783
784
|
var createExtendsFromKeys = (key) => {
|
|
784
785
|
if (key.includes("+")) {
|
|
785
786
|
return key.split("+").filter(matchesComponentNaming);
|
|
@@ -853,17 +854,17 @@ var Domql = (() => {
|
|
|
853
854
|
}
|
|
854
855
|
return setHashedExtend(extend, stack);
|
|
855
856
|
};
|
|
856
|
-
var extractArrayExtend = (extend, stack, context, processed = /* @__PURE__ */ new Set()) => {
|
|
857
|
+
var extractArrayExtend = (extend, stack, context, processed = /* @__PURE__ */ new Set(), nameStack, componentNameMap) => {
|
|
857
858
|
for (const each of extend) {
|
|
858
859
|
if (isArray(each)) {
|
|
859
|
-
extractArrayExtend(each, stack, context, processed);
|
|
860
|
+
extractArrayExtend(each, stack, context, processed, nameStack, componentNameMap);
|
|
860
861
|
} else {
|
|
861
|
-
flattenExtend(each, stack, context, processed);
|
|
862
|
+
flattenExtend(each, stack, context, processed, nameStack, void 0, componentNameMap);
|
|
862
863
|
}
|
|
863
864
|
}
|
|
864
865
|
return stack;
|
|
865
866
|
};
|
|
866
|
-
var deepExtend = (extend, stack, context, processed = /* @__PURE__ */ new Set()) => {
|
|
867
|
+
var deepExtend = (extend, stack, context, processed = /* @__PURE__ */ new Set(), nameStack, currentName, componentNameMap) => {
|
|
867
868
|
const extendOflattenExtend = extend.extends || extend.extend;
|
|
868
869
|
const cleanExtend = { ...extend };
|
|
869
870
|
delete cleanExtend.extends;
|
|
@@ -875,26 +876,32 @@ var Domql = (() => {
|
|
|
875
876
|
}
|
|
876
877
|
if (hasKeys) {
|
|
877
878
|
stack.push(cleanExtend);
|
|
879
|
+
if (nameStack) nameStack.push(currentName);
|
|
878
880
|
}
|
|
879
881
|
if (extendOflattenExtend) {
|
|
880
|
-
flattenExtend(extendOflattenExtend, stack, context, processed);
|
|
882
|
+
flattenExtend(extendOflattenExtend, stack, context, processed, nameStack, currentName, componentNameMap);
|
|
881
883
|
}
|
|
882
884
|
return stack;
|
|
883
885
|
};
|
|
884
|
-
var flattenExtend = (extend, stack, context, processed = /* @__PURE__ */ new Set()) => {
|
|
886
|
+
var flattenExtend = (extend, stack, context, processed = /* @__PURE__ */ new Set(), nameStack, parentName, componentNameMap) => {
|
|
885
887
|
if (!extend) return stack;
|
|
886
888
|
if (processed.has(extend)) return stack;
|
|
887
889
|
if (isArray(extend)) {
|
|
888
|
-
return extractArrayExtend(extend, stack, context, processed);
|
|
890
|
+
return extractArrayExtend(extend, stack, context, processed, nameStack, componentNameMap);
|
|
889
891
|
}
|
|
892
|
+
let currentName = parentName;
|
|
890
893
|
if (isString(extend)) {
|
|
894
|
+
currentName = extend;
|
|
891
895
|
extend = mapStringsWithContextComponents(extend, context);
|
|
896
|
+
} else if (componentNameMap && isObject(extend) && componentNameMap.has(extend)) {
|
|
897
|
+
currentName = componentNameMap.get(extend);
|
|
892
898
|
}
|
|
893
899
|
processed.add(extend);
|
|
894
900
|
if (extend?.extends || extend?.extend) {
|
|
895
|
-
deepExtend(extend, stack, context, processed);
|
|
901
|
+
deepExtend(extend, stack, context, processed, nameStack, currentName, componentNameMap);
|
|
896
902
|
} else if (extend) {
|
|
897
903
|
stack.push(extend);
|
|
904
|
+
if (nameStack) nameStack.push(currentName);
|
|
898
905
|
}
|
|
899
906
|
return stack;
|
|
900
907
|
};
|
|
@@ -907,7 +914,7 @@ var Domql = (() => {
|
|
|
907
914
|
"childExtend",
|
|
908
915
|
"childExtendRecursive"
|
|
909
916
|
]);
|
|
910
|
-
var deepMergeExtends = (element, extend) => {
|
|
917
|
+
var deepMergeExtends = (element, extend, sourcemap, sourceName, preBuiltSourcemap) => {
|
|
911
918
|
extend = deepClone(extend);
|
|
912
919
|
for (const e in extend) {
|
|
913
920
|
if (MERGE_EXTENDS_SKIP.has(e)) continue;
|
|
@@ -917,11 +924,23 @@ var Domql = (() => {
|
|
|
917
924
|
if (Object.prototype.hasOwnProperty.call(extend, e) && e !== "__proto__" && e !== "constructor" && e !== "prototype") {
|
|
918
925
|
if (elementProp === void 0) {
|
|
919
926
|
element[e] = extendProp;
|
|
927
|
+
if (sourcemap && sourceName) {
|
|
928
|
+
if (isObject(extendProp) && !isArray(extendProp)) {
|
|
929
|
+
sourcemap[e] = sourcemap[e] || {};
|
|
930
|
+
trackSourcemapDeep(sourcemap[e], extendProp, sourceName);
|
|
931
|
+
} else {
|
|
932
|
+
sourcemap[e] = sourceName;
|
|
933
|
+
}
|
|
934
|
+
} else if (sourcemap && preBuiltSourcemap?.[e]) {
|
|
935
|
+
sourcemap[e] = preBuiltSourcemap[e];
|
|
936
|
+
}
|
|
920
937
|
} else if (isObject(elementProp) && isObject(extendProp)) {
|
|
938
|
+
const nestedSourcemap = sourcemap ? sourcemap[e] = sourcemap[e] || {} : void 0;
|
|
939
|
+
const nestedPreBuilt = preBuiltSourcemap?.[e];
|
|
921
940
|
if (matchesComponentNaming(e)) {
|
|
922
|
-
element[e] = deepMergeExtends(elementProp, extendProp);
|
|
941
|
+
element[e] = deepMergeExtends(elementProp, extendProp, nestedSourcemap, sourceName, nestedPreBuilt);
|
|
923
942
|
} else {
|
|
924
|
-
deepMergeExtends(elementProp, extendProp);
|
|
943
|
+
deepMergeExtends(elementProp, extendProp, nestedSourcemap, sourceName, nestedPreBuilt);
|
|
925
944
|
}
|
|
926
945
|
}
|
|
927
946
|
if (e === "extends" || e === "childExtends" || e === "childExtendsRecursive") {
|
|
@@ -936,10 +955,24 @@ var Domql = (() => {
|
|
|
936
955
|
}
|
|
937
956
|
return element;
|
|
938
957
|
};
|
|
939
|
-
var
|
|
940
|
-
|
|
958
|
+
var trackSourcemapDeep = (sourcemap, obj, sourceName) => {
|
|
959
|
+
for (const key in obj) {
|
|
960
|
+
if (!Object.prototype.hasOwnProperty.call(obj, key)) continue;
|
|
961
|
+
if (key === "__proto__" || key === "constructor" || key === "prototype") continue;
|
|
962
|
+
const val = obj[key];
|
|
963
|
+
if (isObject(val) && !isArray(val)) {
|
|
964
|
+
sourcemap[key] = sourcemap[key] || {};
|
|
965
|
+
trackSourcemapDeep(sourcemap[key], val, sourceName);
|
|
966
|
+
} else {
|
|
967
|
+
sourcemap[key] = sourceName;
|
|
968
|
+
}
|
|
969
|
+
}
|
|
970
|
+
};
|
|
971
|
+
var cloneAndMergeArrayExtend = (stack, sourcemap, extendNames) => {
|
|
972
|
+
return stack.reduce((acc, current, i) => {
|
|
941
973
|
const cloned = deepClone(current);
|
|
942
|
-
|
|
974
|
+
const sourceName = extendNames ? extendNames[i] : void 0;
|
|
975
|
+
return deepMergeExtends(acc, cloned, sourcemap, sourceName);
|
|
943
976
|
}, {});
|
|
944
977
|
};
|
|
945
978
|
var mapStringsWithContextComponents = (extend, context, options = {}, variant) => {
|
|
@@ -959,11 +992,12 @@ var Domql = (() => {
|
|
|
959
992
|
}
|
|
960
993
|
return extend;
|
|
961
994
|
};
|
|
962
|
-
var getExtendsStack = (extend, context) => {
|
|
995
|
+
var getExtendsStack = (extend, context, nameStack, componentNameMap) => {
|
|
963
996
|
if (!extend) return [];
|
|
964
997
|
if (extend.__hash) return getHashedExtend(extend) || [];
|
|
965
998
|
const processed = /* @__PURE__ */ new Set();
|
|
966
|
-
const stack = flattenExtend(extend, [], context, processed);
|
|
999
|
+
const stack = flattenExtend(extend, [], context, processed, nameStack, void 0, componentNameMap);
|
|
1000
|
+
if (nameStack) return stack;
|
|
967
1001
|
return getExtendsStackRegistry(extend, stack);
|
|
968
1002
|
};
|
|
969
1003
|
var createElementExtends = (element, parent, options = {}) => {
|
|
@@ -1041,6 +1075,8 @@ var Domql = (() => {
|
|
|
1041
1075
|
const { props, __ref: ref } = element;
|
|
1042
1076
|
const context = element.context || parent.context;
|
|
1043
1077
|
const variant = element.variant || props?.variant;
|
|
1078
|
+
const sourcemap = isSourcemapEnabled(options);
|
|
1079
|
+
const originalExtendNames = sourcemap ? [...ref.__extends] : null;
|
|
1044
1080
|
const __extends = removeDuplicatesInArray(
|
|
1045
1081
|
ref.__extends.map((val, i) => {
|
|
1046
1082
|
return mapStringsWithContextComponents(
|
|
@@ -1051,15 +1087,40 @@ var Domql = (() => {
|
|
|
1051
1087
|
);
|
|
1052
1088
|
})
|
|
1053
1089
|
);
|
|
1054
|
-
|
|
1055
|
-
|
|
1090
|
+
if (sourcemap) {
|
|
1091
|
+
const componentNameMap = /* @__PURE__ */ new WeakMap();
|
|
1092
|
+
for (let i = 0; i < __extends.length; i++) {
|
|
1093
|
+
const resolved = __extends[i];
|
|
1094
|
+
const originalName = originalExtendNames[i];
|
|
1095
|
+
if (resolved && isObject(resolved) && isString(originalName)) {
|
|
1096
|
+
componentNameMap.set(resolved, originalName);
|
|
1097
|
+
}
|
|
1098
|
+
}
|
|
1099
|
+
const nameStack = [];
|
|
1100
|
+
const stack = getExtendsStack(__extends, context, nameStack, componentNameMap);
|
|
1101
|
+
ref.__extendsStack = stack;
|
|
1102
|
+
ref.__extendsNames = nameStack;
|
|
1103
|
+
} else {
|
|
1104
|
+
const stack = getExtendsStack(__extends, context);
|
|
1105
|
+
ref.__extendsStack = stack;
|
|
1106
|
+
}
|
|
1056
1107
|
return ref.__extendsStack;
|
|
1057
1108
|
};
|
|
1058
1109
|
var finalizeExtends = (element, parent, options = {}) => {
|
|
1059
1110
|
const { __ref: ref } = element;
|
|
1060
1111
|
const { __extendsStack } = ref;
|
|
1061
|
-
|
|
1062
|
-
|
|
1112
|
+
if (isSourcemapEnabled(options)) {
|
|
1113
|
+
const sourcemapAcc = {};
|
|
1114
|
+
const extendNames = ref.__extendsNames || [];
|
|
1115
|
+
const flattenExtends = cloneAndMergeArrayExtend(__extendsStack, sourcemapAcc, extendNames);
|
|
1116
|
+
const appliedSourcemap = {};
|
|
1117
|
+
deepMergeExtends(element, flattenExtends, appliedSourcemap, void 0, sourcemapAcc);
|
|
1118
|
+
ref.__sourcemap = appliedSourcemap;
|
|
1119
|
+
} else {
|
|
1120
|
+
const flattenExtends = cloneAndMergeArrayExtend(__extendsStack);
|
|
1121
|
+
deepMergeExtends(element, flattenExtends);
|
|
1122
|
+
}
|
|
1123
|
+
return element;
|
|
1063
1124
|
};
|
|
1064
1125
|
var applyExtends = (element, parent, options = {}) => {
|
|
1065
1126
|
createElementExtends(element, parent, options);
|
|
@@ -1098,6 +1159,30 @@ var Domql = (() => {
|
|
|
1098
1159
|
// ../utils/dist/esm/props.js
|
|
1099
1160
|
var RE_UPPER = /^[A-Z]/;
|
|
1100
1161
|
var RE_DIGITS = /^\d+$/;
|
|
1162
|
+
var ELEMENT_INDICATOR_KEYS = /* @__PURE__ */ new Set([
|
|
1163
|
+
"extend",
|
|
1164
|
+
"props",
|
|
1165
|
+
"text",
|
|
1166
|
+
"tag",
|
|
1167
|
+
"on",
|
|
1168
|
+
"if",
|
|
1169
|
+
"childExtend",
|
|
1170
|
+
"children",
|
|
1171
|
+
"childrenAs",
|
|
1172
|
+
"state",
|
|
1173
|
+
"html",
|
|
1174
|
+
"attr",
|
|
1175
|
+
"define",
|
|
1176
|
+
"content"
|
|
1177
|
+
]);
|
|
1178
|
+
var looksLikeElement = (value) => {
|
|
1179
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return false;
|
|
1180
|
+
for (const k in value) {
|
|
1181
|
+
if (ELEMENT_INDICATOR_KEYS.has(k)) return true;
|
|
1182
|
+
if (RE_UPPER.test(k)) return true;
|
|
1183
|
+
}
|
|
1184
|
+
return false;
|
|
1185
|
+
};
|
|
1101
1186
|
var createProps = (element, parent, key) => {
|
|
1102
1187
|
const { props, __ref: ref } = element;
|
|
1103
1188
|
ref.__propsStack = [];
|
|
@@ -1122,7 +1207,7 @@ var Domql = (() => {
|
|
|
1122
1207
|
}
|
|
1123
1208
|
const hasDefine = isObject(this.define?.[key]);
|
|
1124
1209
|
const hasGlobalDefine = isObject(this.context?.define?.[key]);
|
|
1125
|
-
const isElement = RE_UPPER.test(key) || RE_DIGITS.test(key);
|
|
1210
|
+
const isElement = RE_UPPER.test(key) || RE_DIGITS.test(key) || looksLikeElement(value);
|
|
1126
1211
|
const isBuiltin = DOMQ_PROPERTIES.has(key);
|
|
1127
1212
|
if (!isElement && !isBuiltin && !hasDefine && !hasGlobalDefine) {
|
|
1128
1213
|
obj.props[key] = value;
|
|
@@ -1543,18 +1628,26 @@ var Domql = (() => {
|
|
|
1543
1628
|
};
|
|
1544
1629
|
var applyEvent = (param, element, state2, context, options) => {
|
|
1545
1630
|
if (!isFunction(param)) return;
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
result.
|
|
1555
|
-
|
|
1631
|
+
try {
|
|
1632
|
+
const result = param.call(
|
|
1633
|
+
element,
|
|
1634
|
+
element,
|
|
1635
|
+
state2 || element.state,
|
|
1636
|
+
context || element.context,
|
|
1637
|
+
options
|
|
1638
|
+
);
|
|
1639
|
+
if (result && typeof result.then === "function") {
|
|
1640
|
+
result.catch((err) => {
|
|
1641
|
+
element.error = err;
|
|
1642
|
+
console.error("[DomQL] Async event error:", err);
|
|
1643
|
+
});
|
|
1644
|
+
}
|
|
1645
|
+
return result;
|
|
1646
|
+
} catch (err) {
|
|
1647
|
+
element.error = err;
|
|
1648
|
+
console.error("[DomQL] Event handler error:", err);
|
|
1649
|
+
if (element.context?.strictMode) throw err;
|
|
1556
1650
|
}
|
|
1557
|
-
return result;
|
|
1558
1651
|
};
|
|
1559
1652
|
var triggerEventOn = (param, element, options) => {
|
|
1560
1653
|
if (!element) {
|
|
@@ -1568,19 +1661,27 @@ var Domql = (() => {
|
|
|
1568
1661
|
};
|
|
1569
1662
|
var applyEventUpdate = (param, updatedObj, element, state2, context, options) => {
|
|
1570
1663
|
if (!isFunction(param)) return;
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
result.
|
|
1581
|
-
|
|
1664
|
+
try {
|
|
1665
|
+
const result = param.call(
|
|
1666
|
+
element,
|
|
1667
|
+
updatedObj,
|
|
1668
|
+
element,
|
|
1669
|
+
state2 || element.state,
|
|
1670
|
+
context || element.context,
|
|
1671
|
+
options
|
|
1672
|
+
);
|
|
1673
|
+
if (result && typeof result.then === "function") {
|
|
1674
|
+
result.catch((err) => {
|
|
1675
|
+
element.error = err;
|
|
1676
|
+
console.error("[DomQL] Async event update error:", err);
|
|
1677
|
+
});
|
|
1678
|
+
}
|
|
1679
|
+
return result;
|
|
1680
|
+
} catch (err) {
|
|
1681
|
+
element.error = err;
|
|
1682
|
+
console.error("[DomQL] Event update error:", err);
|
|
1683
|
+
if (element.context?.strictMode) throw err;
|
|
1582
1684
|
}
|
|
1583
|
-
return result;
|
|
1584
1685
|
};
|
|
1585
1686
|
var triggerEventOnUpdate = (param, updatedObj, element, options) => {
|
|
1586
1687
|
const appliedFunction = getOnOrPropsEvent(param, element);
|
|
@@ -1887,7 +1988,20 @@ var Domql = (() => {
|
|
|
1887
1988
|
}
|
|
1888
1989
|
function call(fnKey, ...args) {
|
|
1889
1990
|
const context = this.context;
|
|
1890
|
-
|
|
1991
|
+
const fn = context.utils?.[fnKey] || context.functions?.[fnKey] || context.methods?.[fnKey] || context.snippets?.[fnKey];
|
|
1992
|
+
if (!fn) return;
|
|
1993
|
+
try {
|
|
1994
|
+
const result = fn.call(this, ...args);
|
|
1995
|
+
if (result && typeof result.then === "function") {
|
|
1996
|
+
result.catch((err) => {
|
|
1997
|
+
this.error = err;
|
|
1998
|
+
});
|
|
1999
|
+
}
|
|
2000
|
+
return result;
|
|
2001
|
+
} catch (err) {
|
|
2002
|
+
this.error = err;
|
|
2003
|
+
if (context?.strictMode) throw err;
|
|
2004
|
+
}
|
|
1891
2005
|
}
|
|
1892
2006
|
function isMethod(param, element) {
|
|
1893
2007
|
return Boolean(METHODS.has(param) || element?.context?.methods?.[param]);
|
|
@@ -2008,17 +2122,25 @@ ${element}` : "";
|
|
|
2008
2122
|
}
|
|
2009
2123
|
const handler = (event) => {
|
|
2010
2124
|
const { state: state2, context } = element;
|
|
2011
|
-
|
|
2012
|
-
|
|
2013
|
-
|
|
2014
|
-
|
|
2015
|
-
|
|
2016
|
-
|
|
2017
|
-
|
|
2018
|
-
|
|
2019
|
-
|
|
2020
|
-
result.
|
|
2021
|
-
|
|
2125
|
+
try {
|
|
2126
|
+
const result = appliedFunction.call(
|
|
2127
|
+
element,
|
|
2128
|
+
event,
|
|
2129
|
+
element,
|
|
2130
|
+
state2,
|
|
2131
|
+
context,
|
|
2132
|
+
options
|
|
2133
|
+
);
|
|
2134
|
+
if (result && typeof result.then === "function") {
|
|
2135
|
+
result.catch((err) => {
|
|
2136
|
+
element.error = err;
|
|
2137
|
+
console.error("[DomQL] Async DOM event error:", err);
|
|
2138
|
+
});
|
|
2139
|
+
}
|
|
2140
|
+
} catch (err) {
|
|
2141
|
+
element.error = err;
|
|
2142
|
+
console.error("[DomQL] DOM event error:", err);
|
|
2143
|
+
if (context?.strictMode) throw err;
|
|
2022
2144
|
}
|
|
2023
2145
|
};
|
|
2024
2146
|
ref.__eventListeners[param] = handler;
|
|
@@ -2093,7 +2215,8 @@ ${element}` : "";
|
|
|
2093
2215
|
}
|
|
2094
2216
|
};
|
|
2095
2217
|
var startFrameLoop = (frameListeners) => {
|
|
2096
|
-
|
|
2218
|
+
const raf = typeof window !== "undefined" && window.requestAnimationFrame;
|
|
2219
|
+
if (_frameRunning || !raf) return;
|
|
2097
2220
|
_frameRunning = true;
|
|
2098
2221
|
function requestFrame() {
|
|
2099
2222
|
if (frameListeners.size === 0) {
|
|
@@ -2101,9 +2224,9 @@ ${element}` : "";
|
|
|
2101
2224
|
return;
|
|
2102
2225
|
}
|
|
2103
2226
|
processFrameListeners(frameListeners);
|
|
2104
|
-
|
|
2227
|
+
raf(requestFrame);
|
|
2105
2228
|
}
|
|
2106
|
-
|
|
2229
|
+
raf(requestFrame);
|
|
2107
2230
|
};
|
|
2108
2231
|
var applyAnimationFrame = (element) => {
|
|
2109
2232
|
if (!element) {
|
|
@@ -2481,7 +2604,7 @@ ${element}` : "";
|
|
|
2481
2604
|
|
|
2482
2605
|
// ../element/dist/esm/mixins/html.js
|
|
2483
2606
|
function html(param, element, node) {
|
|
2484
|
-
const prop = exec(element?.props?.html
|
|
2607
|
+
const prop = exec(param ?? element?.props?.html, element);
|
|
2485
2608
|
const { __ref } = element;
|
|
2486
2609
|
if (prop !== __ref.__html) {
|
|
2487
2610
|
if (node.nodeName === "SVG") node.textContent = prop;
|
|
@@ -2811,7 +2934,7 @@ ${element}` : "";
|
|
|
2811
2934
|
}
|
|
2812
2935
|
return;
|
|
2813
2936
|
}
|
|
2814
|
-
if (!params) return element;
|
|
2937
|
+
if (!params || typeof params !== "object") return element;
|
|
2815
2938
|
let { childExtends, props, tag } = params;
|
|
2816
2939
|
if (!props) props = params.props = {};
|
|
2817
2940
|
if (tag === "fragment") {
|
|
@@ -3430,6 +3553,34 @@ ${element}` : "";
|
|
|
3430
3553
|
triggerEventOn("update", element, options);
|
|
3431
3554
|
}
|
|
3432
3555
|
};
|
|
3556
|
+
var findSiblingAttachOptions = (element, parent) => {
|
|
3557
|
+
const { __children } = parent.__ref || {};
|
|
3558
|
+
if (!__children) return false;
|
|
3559
|
+
const currentIndex = __children.indexOf(element.key);
|
|
3560
|
+
let previousNode;
|
|
3561
|
+
for (let i = currentIndex - 1; i >= 0; i--) {
|
|
3562
|
+
const sibling = parent[__children[i]];
|
|
3563
|
+
if (sibling?.node?.parentNode) {
|
|
3564
|
+
previousNode = sibling.node;
|
|
3565
|
+
break;
|
|
3566
|
+
}
|
|
3567
|
+
}
|
|
3568
|
+
if (previousNode) {
|
|
3569
|
+
return { position: "after", node: previousNode };
|
|
3570
|
+
}
|
|
3571
|
+
let nextNode;
|
|
3572
|
+
for (let i = currentIndex + 1; i < __children.length; i++) {
|
|
3573
|
+
const sibling = parent[__children[i]];
|
|
3574
|
+
if (sibling?.node?.parentNode) {
|
|
3575
|
+
nextNode = sibling.node;
|
|
3576
|
+
break;
|
|
3577
|
+
}
|
|
3578
|
+
}
|
|
3579
|
+
if (nextNode) {
|
|
3580
|
+
return { position: "before", node: nextNode };
|
|
3581
|
+
}
|
|
3582
|
+
return false;
|
|
3583
|
+
};
|
|
3433
3584
|
var checkIfOnUpdate = (element, parent, options) => {
|
|
3434
3585
|
if (!isFunction(element.if) && !isFunction(element.props?.if) || !parent) {
|
|
3435
3586
|
return;
|
|
@@ -3466,16 +3617,7 @@ ${element}` : "";
|
|
|
3466
3617
|
} else if (element[contentKey]?.parseDeep) {
|
|
3467
3618
|
element[contentKey] = element[contentKey].parseDeep();
|
|
3468
3619
|
}
|
|
3469
|
-
const
|
|
3470
|
-
const previousNode = previousElement2?.node;
|
|
3471
|
-
const hasPrevious = previousNode?.parentNode;
|
|
3472
|
-
const nextElement2 = element.nextElement();
|
|
3473
|
-
const nextNode = nextElement2?.node;
|
|
3474
|
-
const hasNext = nextNode?.parentNode;
|
|
3475
|
-
const attachOptions = (hasPrevious || hasNext) && {
|
|
3476
|
-
position: hasPrevious ? "after" : hasNext ? "before" : null,
|
|
3477
|
-
node: hasPrevious && previousNode || hasNext && nextNode
|
|
3478
|
-
};
|
|
3620
|
+
const attachOptions = findSiblingAttachOptions(element, parent);
|
|
3479
3621
|
delete element.__ref;
|
|
3480
3622
|
delete element.parent;
|
|
3481
3623
|
const createdElement = create(
|
|
@@ -4583,7 +4725,9 @@ ${element}` : "";
|
|
|
4583
4725
|
};
|
|
4584
4726
|
var addElementIntoParentChildren = (element, parent) => {
|
|
4585
4727
|
if (parent.__ref && parent.__ref.__children) {
|
|
4586
|
-
parent.__ref.__children.
|
|
4728
|
+
if (!parent.__ref.__children.includes(element.key)) {
|
|
4729
|
+
parent.__ref.__children.push(element.key);
|
|
4730
|
+
}
|
|
4587
4731
|
}
|
|
4588
4732
|
};
|
|
4589
4733
|
var _uniqIdCounter = 1;
|
|
@@ -4602,12 +4746,13 @@ ${element}` : "";
|
|
|
4602
4746
|
createNode(element, options);
|
|
4603
4747
|
ref.__uniqId = _uniqIdCounter++;
|
|
4604
4748
|
};
|
|
4605
|
-
if (ENV6 === "test" || ENV6 === "development") {
|
|
4749
|
+
if (ENV6 === "test" || ENV6 === "development" || element.context?.strictMode) {
|
|
4606
4750
|
createNestedChild();
|
|
4607
4751
|
} else {
|
|
4608
4752
|
try {
|
|
4609
4753
|
createNestedChild();
|
|
4610
4754
|
} catch (e) {
|
|
4755
|
+
element.error = e;
|
|
4611
4756
|
const path = ref.path;
|
|
4612
4757
|
if (path.includes("ComponentsGrid")) {
|
|
4613
4758
|
path.splice(0, path.indexOf("ComponentsGrid") + 2);
|
|
@@ -4621,7 +4766,7 @@ ${element}` : "";
|
|
|
4621
4766
|
isDemoComponent ? isDemoComponent + " " : "" + path.join(".")
|
|
4622
4767
|
);
|
|
4623
4768
|
element.verbose();
|
|
4624
|
-
|
|
4769
|
+
console.error("[DomQL] Render error:", e);
|
|
4625
4770
|
if (element.on?.error) {
|
|
4626
4771
|
element.on.error(e, element, element.state, element.context, options);
|
|
4627
4772
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "domql",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"module": "./dist/esm/index.js",
|
|
@@ -8,9 +8,7 @@
|
|
|
8
8
|
"exports": {
|
|
9
9
|
".": {
|
|
10
10
|
"import": "./dist/esm/index.js",
|
|
11
|
-
"require": "./dist/cjs/index.js"
|
|
12
|
-
"browser": "./dist/esm/index.js",
|
|
13
|
-
"default": "./dist/esm/index.js"
|
|
11
|
+
"require": "./dist/cjs/index.js"
|
|
14
12
|
}
|
|
15
13
|
},
|
|
16
14
|
"source": "index.js",
|
|
@@ -27,13 +25,16 @@
|
|
|
27
25
|
"build:iife": "cross-env NODE_ENV=$NODE_ENV esbuild index.js --bundle --target=es2020 --format=iife --global-name=Domql --outfile=dist/iife/index.js --define:process.env.NODE_ENV=process.env.NODE_ENV"
|
|
28
26
|
},
|
|
29
27
|
"dependencies": {
|
|
30
|
-
"@domql/element": "^3.
|
|
31
|
-
"@domql/state": "^3.
|
|
32
|
-
"@domql/utils": "^3.
|
|
28
|
+
"@domql/element": "^3.6.1",
|
|
29
|
+
"@domql/state": "^3.6.1",
|
|
30
|
+
"@domql/utils": "^3.6.1"
|
|
33
31
|
},
|
|
34
32
|
"gitHead": "9fc1b79b41cdc725ca6b24aec64920a599634681",
|
|
35
33
|
"browser": "./dist/esm/index.js",
|
|
36
34
|
"unpkg": "./dist/iife/index.js",
|
|
37
35
|
"jsdelivr": "./dist/iife/index.js",
|
|
38
|
-
"sideEffects": false
|
|
36
|
+
"sideEffects": false,
|
|
37
|
+
"publishConfig": {
|
|
38
|
+
"access": "public"
|
|
39
|
+
}
|
|
39
40
|
}
|