@torpor/view 0.1.2 → 0.1.4
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/CHANGELOG.md +12 -0
- package/dist/compile.cjs +28 -1
- package/dist/compile.cjs.map +1 -1
- package/dist/compile.js +28 -1
- package/dist/compile.js.map +1 -1
- package/dist/metafile-cjs.json +1 -1
- package/dist/metafile-esm.json +1 -1
- package/package.json +4 -4
- package/src/compile/build/client/buildComponentNode.ts +11 -0
- package/src/compile/build/server/buildServerComponentNode.ts +11 -0
- package/src/compile/parse/scopeStyles.ts +2 -1
- package/src/compile/types/nodes/isComponentNode.ts +6 -0
- package/test/class/class.test.ts +6 -0
- package/test/class/components/Class.torp +11 -1
- package/test/class/components/output/Class-client.ts +35 -1
- package/test/class/components/output/Class-server.ts +23 -1
- package/test/class/components/temp/{Class-client-dc885e1e391f38973bd9ea25b7475b07f7c23960.ts → Class-client-12f09850a5f8c27de6cf94c23a2b17aadbf66f01.ts} +35 -1
- package/test/class/components/temp/{Class-server-d1a2463ba432e10c6f68bd59d1d31949c5a2044f.ts → Class-server-853a463d2ad1a1e3da4da5ad59ad1c75461d2431.ts} +23 -1
package/dist/compile.js
CHANGED
|
@@ -904,6 +904,17 @@ function buildComponentNode(node, status, b, root = false) {
|
|
|
904
904
|
value = value.substring(1, value.length - 1);
|
|
905
905
|
buildRun("setProp", `${propsName}["${name}"] = ${value};`, status, b);
|
|
906
906
|
buildRun("setBinding", `${value} = ${propsName}["${name}"];`, status, b);
|
|
907
|
+
} else if (name === ":class" && value != null && isFullyReactive(value)) {
|
|
908
|
+
status.imports.add("t_class");
|
|
909
|
+
value = value.substring(1, value.length - 1);
|
|
910
|
+
if (node.scopeStyles) {
|
|
911
|
+
value += `, "torp-${status.styleHash}"`;
|
|
912
|
+
}
|
|
913
|
+
buildRun("setClasses", `${propsName}["class"] = t_class(${value});`, status, b);
|
|
914
|
+
} else if (name === ":style" && value != null && isFullyReactive(value)) {
|
|
915
|
+
status.imports.add("t_style");
|
|
916
|
+
value = value.substring(1, value.length - 1);
|
|
917
|
+
buildRun("setStyles", `${propsName}["style"] = t_style(${value});`, status, b);
|
|
907
918
|
} else if (value != null) {
|
|
908
919
|
let fullyReactive = isFullyReactive(value);
|
|
909
920
|
let partlyReactive = isReactive(value);
|
|
@@ -2083,6 +2094,17 @@ function buildServerComponentNode(node, status, b) {
|
|
|
2083
2094
|
name = name.substring(1, name.length - 1);
|
|
2084
2095
|
const propName = name.split(".").at(-1);
|
|
2085
2096
|
b.append(`${propsName}["${propName}"] = ${name};`);
|
|
2097
|
+
} else if (name === ":class" && value != null && isFullyReactive(value)) {
|
|
2098
|
+
status.imports.add("t_class");
|
|
2099
|
+
value = value.substring(1, value.length - 1);
|
|
2100
|
+
if (node.scopeStyles) {
|
|
2101
|
+
value += `, "torp-${status.styleHash}"`;
|
|
2102
|
+
}
|
|
2103
|
+
b.append(`${propsName}["class"] = t_class(${value});`);
|
|
2104
|
+
} else if (name === ":style" && value != null && isFullyReactive(value)) {
|
|
2105
|
+
status.imports.add("t_style");
|
|
2106
|
+
value = value.substring(1, value.length - 1);
|
|
2107
|
+
b.append(`${propsName}["style"] = t_style(${value});`);
|
|
2086
2108
|
} else if (value != null) {
|
|
2087
2109
|
let fullyReactive = isFullyReactive(value);
|
|
2088
2110
|
let partlyReactive = isReactive(value);
|
|
@@ -3618,6 +3640,11 @@ function parseStyleAttribute(status) {
|
|
|
3618
3640
|
};
|
|
3619
3641
|
}
|
|
3620
3642
|
|
|
3643
|
+
// src/compile/types/nodes/isComponentNode.ts
|
|
3644
|
+
function isComponentNode(node) {
|
|
3645
|
+
return node.type === "component";
|
|
3646
|
+
}
|
|
3647
|
+
|
|
3621
3648
|
// src/compile/types/nodes/isParentNode.ts
|
|
3622
3649
|
function isParentNode(node) {
|
|
3623
3650
|
return "children" in node;
|
|
@@ -3636,7 +3663,7 @@ function scopeStyles(status) {
|
|
|
3636
3663
|
}
|
|
3637
3664
|
}
|
|
3638
3665
|
function scopeStylesOnNode(node, selectors) {
|
|
3639
|
-
if (isElementNode(node)) {
|
|
3666
|
+
if (isElementNode(node) || isComponentNode(node)) {
|
|
3640
3667
|
let scopeStyles2 = selectors.includes(node.tagName);
|
|
3641
3668
|
if (!scopeStyles2) {
|
|
3642
3669
|
for (let a of node.attributes) {
|