@torpor/view 0.4.13 → 0.4.15
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 +16 -0
- package/dist/{Cleanup-BGQ5zaxE.d.cts → Cleanup-CYsytTEc.d.cts} +1 -1
- package/dist/Cleanup-CYsytTEc.d.cts.map +1 -0
- package/dist/{Cleanup-Ca8IspaG.d.ts → Cleanup-CgjyN0lW.d.mts} +1 -1
- package/dist/Cleanup-CgjyN0lW.d.mts.map +1 -0
- package/dist/{Component-BDUCwkBQ.d.cts → Component-DmWGMgak.d.mts} +1 -1
- package/dist/{Component-BDUCwkBQ.d.cts.map → Component-DmWGMgak.d.mts.map} +1 -1
- package/dist/{Component-JVwSemf-.d.ts → Component-kGLRFYg2.d.cts} +1 -1
- package/dist/Component-kGLRFYg2.d.cts.map +1 -0
- package/dist/{Region-BrsZLZUe.d.ts → Region-Bb6HAb-F.d.cts} +2 -2
- package/dist/{Region-Cf7OeBIQ.d.cts.map → Region-Bb6HAb-F.d.cts.map} +1 -1
- package/dist/{Region-Cf7OeBIQ.d.cts → Region-CTchywkr.d.mts} +2 -2
- package/dist/Region-CTchywkr.d.mts.map +1 -0
- package/dist/compile.cjs +238 -68
- package/dist/compile.d.cts +1 -1
- package/dist/{compile.d.ts → compile.d.mts} +2 -2
- package/dist/compile.d.mts.map +1 -0
- package/dist/{compile.js → compile.mjs} +238 -67
- package/dist/compile.mjs.map +1 -0
- package/dist/dev.cjs +1 -2
- package/dist/dev.d.cts +2 -2
- package/dist/{dev.d.ts → dev.d.mts} +3 -3
- package/dist/dev.d.mts.map +1 -0
- package/dist/{dev.js → dev.mjs} +2 -2
- package/dist/{dev.cjs.map → dev.mjs.map} +1 -1
- package/dist/devContext-B3yskfhA.cjs +1 -2
- package/dist/{devContext-CevrTlUO.js → devContext-CQ8RhBX-.mjs} +1 -1
- package/dist/{devContext-B3yskfhA.cjs.map → devContext-CQ8RhBX-.mjs.map} +1 -1
- package/dist/{formatText-Ck04q8_X.cjs → formatText--9zsK5Nq.cjs} +4 -4
- package/dist/{formatText-OyD8MNAM.js → formatText-B8u71S_K.mjs} +4 -3
- package/dist/formatText-B8u71S_K.mjs.map +1 -0
- package/dist/{formatText-BlLF3PPm.d.ts → formatText-BNP3P38F.d.cts} +3 -3
- package/dist/formatText-BNP3P38F.d.cts.map +1 -0
- package/dist/{formatText-Bcb1JvW5.d.cts → formatText-D6Ov8Ub0.d.mts} +3 -3
- package/dist/formatText-D6Ov8Ub0.d.mts.map +1 -0
- package/dist/index.cjs +2 -3
- package/dist/index.d.cts +4 -4
- package/dist/{index.d.ts → index.d.mts} +5 -5
- package/dist/index.d.mts.map +1 -0
- package/dist/{index.js → index.mjs} +3 -3
- package/dist/{index.cjs.map → index.mjs.map} +1 -1
- package/dist/ssr.cjs +2 -3
- package/dist/ssr.d.cts +2 -2
- package/dist/{ssr.d.ts → ssr.d.mts} +3 -3
- package/dist/ssr.d.mts.map +1 -0
- package/dist/{ssr.js → ssr.mjs} +2 -2
- package/dist/{ssr.cjs.map → ssr.mjs.map} +1 -1
- package/package.json +17 -17
- package/scripts/copyToRepl.ts +6 -6
- package/src/compile/build/client/addMappedTextWithOffsets.ts +31 -0
- package/src/compile/build/client/buildAddFragment.ts +11 -11
- package/src/compile/build/client/buildComponentNode.ts +126 -29
- package/src/compile/build/client/buildElementNode.ts +65 -8
- package/src/compile/build/client/buildIfNode.ts +1 -1
- package/src/compile/build/client/buildSwitchNode.ts +1 -1
- package/src/compile/build/client/buildTextNode.ts +13 -6
- package/src/compile/build/client/getAttributeOffsets.ts +90 -0
- package/src/compile/build/client/stashRunWithOffsets.ts +7 -1
- package/src/compile/build/server/buildServerElementNode.ts +1 -1
- package/src/compile/parse/parseTag.ts +1 -7
- package/src/compile/parse/parseText.ts +1 -1
- package/src/render/buildClasses.ts +1 -1
- package/src/render/buildStyles.ts +3 -1
- package/src/types/ClassValue.ts +6 -1
- package/src/types/StyleValue.ts +6 -1
- package/test/class/class.test.ts +31 -12
- package/test/class/components/output/Class-client.ts +62 -17
- package/test/class/components/output/Class-server.ts +40 -6
- package/test/class/components/temp/Class-client-c100fef7474dd892108c52b2cfed5825a3412e8b.ts +123 -0
- package/test/class/components/temp/Class-server-f42d0611a27002b493da55392baf7244d31e0d39.ts +78 -0
- package/test/source-maps/interpolated.test.ts +88 -0
- package/test/source-maps/parse.test.ts +1 -1
- package/tsdown.config.ts +2 -9
- package/vitest.config.ts +3 -3
- package/dist/Cleanup-BGQ5zaxE.d.cts.map +0 -1
- package/dist/Cleanup-Ca8IspaG.d.ts.map +0 -1
- package/dist/Component-JVwSemf-.d.ts.map +0 -1
- package/dist/Region-BrsZLZUe.d.ts.map +0 -1
- package/dist/compile.cjs.map +0 -1
- package/dist/compile.d.ts.map +0 -1
- package/dist/compile.js.map +0 -1
- package/dist/dev.d.ts.map +0 -1
- package/dist/dev.js.map +0 -1
- package/dist/devContext-CevrTlUO.js.map +0 -1
- package/dist/formatText-Bcb1JvW5.d.cts.map +0 -1
- package/dist/formatText-BlLF3PPm.d.ts.map +0 -1
- package/dist/formatText-Ck04q8_X.cjs.map +0 -1
- package/dist/formatText-OyD8MNAM.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/ssr.d.ts.map +0 -1
- package/dist/ssr.js.map +0 -1
- package/test/class/components/temp/Class-client-d17977d356d8c8f964eaa1ac5a381814b33c22ba.ts +0 -78
- package/test/class/components/temp/Class-server-e4adcf242d5620acfcfa31c57b9b35c323a15664.ts +0 -44
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @torpor/view
|
|
2
2
|
|
|
3
|
+
## 0.4.15
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 1b19c1d: Fix: set style hash on component classes
|
|
8
|
+
|
|
9
|
+
## 0.4.14
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 9bca98e: Feat: mapping for interpolated attribute values
|
|
14
|
+
- 7382b6d: Fix: allow null and undefined in classes and styles
|
|
15
|
+
- d68d347: Fix: some mapping
|
|
16
|
+
- 4e3d726: Fix: ifs and switches in @heads don't add elements
|
|
17
|
+
- adfa504: Fix: ok I think those types are finally right
|
|
18
|
+
|
|
3
19
|
## 0.4.13
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cleanup-CYsytTEc.d.cts","names":[],"sources":["../src/types/Cleanup.ts"],"sourcesContent":[],"mappings":";;;;;KAIK,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cleanup-CgjyN0lW.d.mts","names":[],"sources":["../src/types/Cleanup.ts"],"sourcesContent":[],"mappings":";;;;;KAIK,OAAA"}
|
|
@@ -8,4 +8,4 @@ type SlotRender = ($sparent: ParentNode, $sanchor: Node | null, $sprops?: Record
|
|
|
8
8
|
type Component = ($parent: ParentNode, $anchor: Node | null, $props?: Record<PropertyKey, any>, $context?: Record<PropertyKey, any>, $slots?: Record<string, SlotRender>) => void;
|
|
9
9
|
//#endregion
|
|
10
10
|
export { SlotRender as n, Component as t };
|
|
11
|
-
//# sourceMappingURL=Component-
|
|
11
|
+
//# sourceMappingURL=Component-DmWGMgak.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component-
|
|
1
|
+
{"version":3,"file":"Component-DmWGMgak.d.mts","names":[],"sources":["../src/types/SlotRender.ts","../src/types/Component.ts"],"sourcesContent":[],"mappings":";KAAK,UAAA,cACM,sBACA,uBACA,OAAO,8BACN,OAAO;;;;;;KCCd,SAAA,GDFa,CAAA,OAAA,ECGR,UDHQ,EAAA,OAAA,ECIR,IDJQ,GAAA,IAAA,EAAA,MAAA,CAAA,ECKR,MDLQ,CCKD,WDLC,EAAA,GAAA,CAAA,EAAA,QAAA,CAAA,ECMN,MDNM,CCMC,WDND,EAAA,GAAA,CAAA,EAAA,MAAA,CAAA,ECOR,MDPQ,CAAA,MAAA,ECOO,UDPP,CAAA,EAAA,GAAA,IAAA"}
|
|
@@ -8,4 +8,4 @@ type SlotRender = ($sparent: ParentNode, $sanchor: Node | null, $sprops?: Record
|
|
|
8
8
|
type Component = ($parent: ParentNode, $anchor: Node | null, $props?: Record<PropertyKey, any>, $context?: Record<PropertyKey, any>, $slots?: Record<string, SlotRender>) => void;
|
|
9
9
|
//#endregion
|
|
10
10
|
export { SlotRender as n, Component as t };
|
|
11
|
-
//# sourceMappingURL=Component-
|
|
11
|
+
//# sourceMappingURL=Component-kGLRFYg2.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Component-kGLRFYg2.d.cts","names":[],"sources":["../src/types/SlotRender.ts","../src/types/Component.ts"],"sourcesContent":[],"mappings":";KAAK,UAAA,cACM,sBACA,uBACA,OAAO,8BACN,OAAO;;;;;;KCCd,SAAA,GDFa,CAAA,OAAA,ECGR,UDHQ,EAAA,OAAA,ECIR,IDJQ,GAAA,IAAA,EAAA,MAAA,CAAA,ECKR,MDLQ,CCKD,WDLC,EAAA,GAAA,CAAA,EAAA,QAAA,CAAA,ECMN,MDNM,CCMC,WDND,EAAA,GAAA,CAAA,EAAA,MAAA,CAAA,ECOR,MDPQ,CAAA,MAAA,ECOO,UDPP,CAAA,EAAA,GAAA,IAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as Cleanup } from "./Cleanup-
|
|
1
|
+
import { t as Cleanup } from "./Cleanup-CYsytTEc.cjs";
|
|
2
2
|
|
|
3
3
|
//#region src/types/constants.d.ts
|
|
4
4
|
/**
|
|
@@ -198,4 +198,4 @@ interface Region {
|
|
|
198
198
|
}
|
|
199
199
|
//#endregion
|
|
200
200
|
export { Computed as i, Effect as n, ProxySignal as r, Region as t };
|
|
201
|
-
//# sourceMappingURL=Region-
|
|
201
|
+
//# sourceMappingURL=Region-Bb6HAb-F.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Region-
|
|
1
|
+
{"version":3,"file":"Region-Bb6HAb-F.d.cts","names":[],"sources":["../src/types/constants.ts","../src/types/Computed.ts","../src/types/ProxySignal.ts","../src/types/Subscription.ts","../src/types/Effect.ts","../src/types/Region.ts"],"sourcesContent":[],"mappings":";;;;;;AAGa,cAAA,WAAA,GAAA,CAAA;AAKb;AAKA;;cALa,aAAA;;ACPiB;;AAgBtB,cDJK,WAAA,GCIL,CAAA;;;;ADdR;AAKA;AAKA;;UCLyB;;AAPK;;EAgBtB,IAAA,EAAA,OALM,aAKN;EAKI;;;EAiCD,KAAA,EAtCH,CAsCG;EAAA;;;aAjCC;ECrBgB;;;EAoBP,WAAA,EDMP,YCNO,GAAA,IAAA;EAAA;;;eDWP;EE9Be;;;;;;EA2BhB,MAAA,EAAA,OAAA;EAQI;;;;;ACnCW;;EAehB,QAAA,EAAA,OAAA;EAKF;;;EAoBQ,QAAA,EHaP,YGbO,GAAA,IAAA;EAAA;;;;;;;;AJvClB;AAKA;AAKA;UENyB,WAAA;;;ADNK;EAWhB,IAAA,EAAA,OCDA,WDCA;EAKN;;;EAeM,WAAA,EChBA,YDgBA,GAAA,IAAA;EAuBH;;;sBClCU;;AApBO;;EAed,IAAA,CAAA,EAAA,MAAA;;;;AFbd;AAKA;AAKA;;UGLyB,YAAA;;AFPK;;EAgBtB,MAAA,EELC,WFKD,GELe,QFKf;EAKI;;;EAiCD,MAAA,EEtCF,QFsCE,GEtCS,MFsCT;EAAA;;;;ECtDiB,UAMH,ECgBZ,YDhBY,GAAA,IAAA;EAIX;;;;cCkBD;;;AA3BgB;;;;EAeT,cAAA,EAoBH,YApBG,GAAA,IAAA;EAMP;;;;;;;ACrBe;;;EAoBlB,MAAA,EAAA,OAAA;EAKI;;;EAeI,IAAA,CAAA,EAAA,MAAA;;;;AJvClB;AAKA;AAKA;UINyB,MAAA;;;AHNK;EAWhB,IAAA,EAAA,OGDA,WHCA;EAKN;;;;EAsCG,GAAA,EAAA,GAAA,GGtCC,OHsCD,GAAA,IAAA;EAAA;;;WGjCD;EFrBkB;;;EAoBP,WAAA,EEMP,YFNO,GAAA,IAAA;EAAA,UAAA,EEWR,MFXQ,GAAA,IAAA;;;;ECnBQ,MAMJ,EAAA,MAAA;EAIhB;;;EAKW,eAAA,ECyBF,MDzBE,GAAA,IAAA;EAMP;;;EAcI,QAAA,EAAA,OAAA;;;;ECnCW,IAKH,CAAA,EAAA,MAAA;;;;UCPA,MAAA;aACb;WACF;ELCV,cAAa,EKCI,MLDJ,GAAA,IAAA;EAKb,UAAa,EKHA,MLGA,GAAA,IAAA;EAKb,KAAa,EAAA,MAAA;;;;ACZiB;EAWhB,UAAA,EIAD,GJAC,CIAG,SJAH,CAAA,GAAA,IAAA;EAKN;;;EAeM,IAAA,CAAA,EAAA,MAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as Cleanup } from "./Cleanup-
|
|
1
|
+
import { t as Cleanup } from "./Cleanup-CgjyN0lW.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/types/constants.d.ts
|
|
4
4
|
/**
|
|
@@ -198,4 +198,4 @@ interface Region {
|
|
|
198
198
|
}
|
|
199
199
|
//#endregion
|
|
200
200
|
export { Computed as i, Effect as n, ProxySignal as r, Region as t };
|
|
201
|
-
//# sourceMappingURL=Region-
|
|
201
|
+
//# sourceMappingURL=Region-CTchywkr.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Region-CTchywkr.d.mts","names":[],"sources":["../src/types/constants.ts","../src/types/Computed.ts","../src/types/ProxySignal.ts","../src/types/Subscription.ts","../src/types/Effect.ts","../src/types/Region.ts"],"sourcesContent":[],"mappings":";;;;;;AAGa,cAAA,WAAA,GAAA,CAAA;AAKb;AAKA;;cALa,aAAA;;ACPiB;;AAgBtB,cDJK,WAAA,GCIL,CAAA;;;;ADdR;AAKA;AAKA;;UCLyB;;AAPK;;EAgBtB,IAAA,EAAA,OALM,aAKN;EAKI;;;EAiCD,KAAA,EAtCH,CAsCG;EAAA;;;aAjCC;ECrBgB;;;EAoBP,WAAA,EDMP,YCNO,GAAA,IAAA;EAAA;;;eDWP;EE9Be;;;;;;EA2BhB,MAAA,EAAA,OAAA;EAQI;;;;;ACnCW;;EAehB,QAAA,EAAA,OAAA;EAKF;;;EAoBQ,QAAA,EHaP,YGbO,GAAA,IAAA;EAAA;;;;;;;;AJvClB;AAKA;AAKA;UENyB,WAAA;;;ADNK;EAWhB,IAAA,EAAA,OCDA,WDCA;EAKN;;;EAeM,WAAA,EChBA,YDgBA,GAAA,IAAA;EAuBH;;;sBClCU;;AApBO;;EAed,IAAA,CAAA,EAAA,MAAA;;;;AFbd;AAKA;AAKA;;UGLyB,YAAA;;AFPK;;EAgBtB,MAAA,EELC,WFKD,GELe,QFKf;EAKI;;;EAiCD,MAAA,EEtCF,QFsCE,GEtCS,MFsCT;EAAA;;;;ECtDiB,UAMH,ECgBZ,YDhBY,GAAA,IAAA;EAIX;;;;cCkBD;;;AA3BgB;;;;EAeT,cAAA,EAoBH,YApBG,GAAA,IAAA;EAMP;;;;;;;ACrBe;;;EAoBlB,MAAA,EAAA,OAAA;EAKI;;;EAeI,IAAA,CAAA,EAAA,MAAA;;;;AJvClB;AAKA;AAKA;UINyB,MAAA;;;AHNK;EAWhB,IAAA,EAAA,OGDA,WHCA;EAKN;;;;EAsCG,GAAA,EAAA,GAAA,GGtCC,OHsCD,GAAA,IAAA;EAAA;;;WGjCD;EFrBkB;;;EAoBP,WAAA,EEMP,YFNO,GAAA,IAAA;EAAA,UAAA,EEWR,MFXQ,GAAA,IAAA;;;;ECnBQ,MAMJ,EAAA,MAAA;EAIhB;;;EAKW,eAAA,ECyBF,MDzBE,GAAA,IAAA;EAMP;;;EAcI,QAAA,EAAA,OAAA;;;;ECnCW,IAKH,CAAA,EAAA,MAAA;;;;UCPA,MAAA;aACb;WACF;ELCV,cAAa,EKCI,MLDJ,GAAA,IAAA;EAKb,UAAa,EKHA,MLGA,GAAA,IAAA;EAKb,KAAa,EAAA,MAAA;;;;ACZiB;EAWhB,UAAA,EIAD,GJAC,CIAG,SJAH,CAAA,GAAA,IAAA;EAKN;;;EAeM,IAAA,CAAA,EAAA,MAAA"}
|
package/dist/compile.cjs
CHANGED
|
@@ -300,6 +300,28 @@ function nextVarName(name, status) {
|
|
|
300
300
|
return varName;
|
|
301
301
|
}
|
|
302
302
|
|
|
303
|
+
//#endregion
|
|
304
|
+
//#region src/compile/build/client/addMappedTextWithOffsets.ts
|
|
305
|
+
function addMappedTextWithOffsets(preText, text, postText, spans, offsets, lengths, status, b) {
|
|
306
|
+
if (status.options.mapped === true) {
|
|
307
|
+
let mappedStart = b.toString().length + preText.length;
|
|
308
|
+
let functionBody = preText + text + postText;
|
|
309
|
+
b.append(functionBody);
|
|
310
|
+
for (let i = 0; i < spans.length; i++) {
|
|
311
|
+
let start = mappedStart + offsets[i];
|
|
312
|
+
let end = start + lengths[i];
|
|
313
|
+
status.map.push({
|
|
314
|
+
script: functionBody,
|
|
315
|
+
source: spans[i],
|
|
316
|
+
compiled: {
|
|
317
|
+
start,
|
|
318
|
+
end
|
|
319
|
+
}
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
} else b.append(preText + text + postText);
|
|
323
|
+
}
|
|
324
|
+
|
|
303
325
|
//#endregion
|
|
304
326
|
//#region src/compile/build/client/buildAddFragment.ts
|
|
305
327
|
function buildAddFragment(node, status, b, parentName, anchorName) {
|
|
@@ -310,19 +332,7 @@ function buildAddFragment(node, status, b, parentName, anchorName) {
|
|
|
310
332
|
if (fragment.effects.length > 0) {
|
|
311
333
|
status.imports.add("$run");
|
|
312
334
|
b.append("$run(() => {");
|
|
313
|
-
if (status.options.mapped === true) for (let effect of fragment.effects)
|
|
314
|
-
let start = b.toString().length + effect.offsets[i];
|
|
315
|
-
b.append(effect.functionBody);
|
|
316
|
-
let end = start + effect.lengths[i];
|
|
317
|
-
status.map.push({
|
|
318
|
-
script: effect.functionBody,
|
|
319
|
-
source: effect.spans[i],
|
|
320
|
-
compiled: {
|
|
321
|
-
start,
|
|
322
|
-
end
|
|
323
|
-
}
|
|
324
|
-
});
|
|
325
|
-
}
|
|
335
|
+
if (status.options.mapped === true) for (let effect of fragment.effects) addMappedTextWithOffsets("", effect.functionBody, "", effect.spans, effect.offsets, effect.lengths, status, b);
|
|
326
336
|
else b.append(fragment.effects.map((e) => e.functionBody).join("\n"));
|
|
327
337
|
b.append(`}${status.options.dev === true ? `, "setAttributes"` : ""});`);
|
|
328
338
|
}
|
|
@@ -705,6 +715,81 @@ function buildRun(functionName, functionBody, status, b) {
|
|
|
705
715
|
addPopDevBoundary(status, b);
|
|
706
716
|
}
|
|
707
717
|
|
|
718
|
+
//#endregion
|
|
719
|
+
//#region src/compile/utils/endOfString.ts
|
|
720
|
+
function endOfString(char, content, start) {
|
|
721
|
+
for (let j = start + 1; j < content.length; j++) if (content[j] === char && content[j - 1] !== "\\") return j;
|
|
722
|
+
return content.length;
|
|
723
|
+
}
|
|
724
|
+
|
|
725
|
+
//#endregion
|
|
726
|
+
//#region src/compile/build/client/getAttributeOffsets.ts
|
|
727
|
+
function getAttributeOffsets(value, span) {
|
|
728
|
+
value = trimQuotes(value);
|
|
729
|
+
let spans = [];
|
|
730
|
+
let offsets = [];
|
|
731
|
+
let lengths = [];
|
|
732
|
+
let textContent = "";
|
|
733
|
+
let reactiveStart = 0;
|
|
734
|
+
let level = 0;
|
|
735
|
+
for (let i = 0; i < value.length; i++) {
|
|
736
|
+
const char = value[i];
|
|
737
|
+
const nextChar = value[i + 1];
|
|
738
|
+
if (char === "{") {
|
|
739
|
+
level++;
|
|
740
|
+
if (level === 1) {
|
|
741
|
+
textContent += "${";
|
|
742
|
+
reactiveStart = textContent.length;
|
|
743
|
+
spans.push({
|
|
744
|
+
start: span.start + i + 2,
|
|
745
|
+
end: -1
|
|
746
|
+
});
|
|
747
|
+
offsets.push(reactiveStart + 1);
|
|
748
|
+
continue;
|
|
749
|
+
}
|
|
750
|
+
} else if (char === "}") {
|
|
751
|
+
level--;
|
|
752
|
+
if (level === 0) {
|
|
753
|
+
spans.at(-1).end = span.start + i + 2;
|
|
754
|
+
lengths.push(textContent.length - reactiveStart);
|
|
755
|
+
textContent += "}";
|
|
756
|
+
continue;
|
|
757
|
+
}
|
|
758
|
+
} else if (char === "`" && level === 0) textContent += "\\";
|
|
759
|
+
else if (level > 0) {
|
|
760
|
+
if (char === "/" && nextChar === "/") {
|
|
761
|
+
let start = i;
|
|
762
|
+
i = value.indexOf("\n", i);
|
|
763
|
+
textContent += value.substring(start, i + 1);
|
|
764
|
+
continue;
|
|
765
|
+
} else if (char === "/" && nextChar === "*") {
|
|
766
|
+
let start = i;
|
|
767
|
+
i = value.indexOf("*/", i) + 1;
|
|
768
|
+
textContent += value.substring(start, i + 1);
|
|
769
|
+
continue;
|
|
770
|
+
} else if (char === "\"" || char === "'") {
|
|
771
|
+
let start = i;
|
|
772
|
+
i = endOfString(char, value, i);
|
|
773
|
+
textContent += value.substring(start, i + 1);
|
|
774
|
+
continue;
|
|
775
|
+
} else if (char === "`") {
|
|
776
|
+
let start = i;
|
|
777
|
+
i = endOfTemplateString(value, i);
|
|
778
|
+
textContent += value.substring(start, i + 1);
|
|
779
|
+
continue;
|
|
780
|
+
}
|
|
781
|
+
}
|
|
782
|
+
textContent += value[i];
|
|
783
|
+
}
|
|
784
|
+
value = `\`${textContent}\``;
|
|
785
|
+
return {
|
|
786
|
+
newValue: value,
|
|
787
|
+
spans,
|
|
788
|
+
offsets,
|
|
789
|
+
lengths
|
|
790
|
+
};
|
|
791
|
+
}
|
|
792
|
+
|
|
708
793
|
//#endregion
|
|
709
794
|
//#region src/compile/build/client/buildComponentNode.ts
|
|
710
795
|
function buildComponentNode(node, status, b, root = false) {
|
|
@@ -717,51 +802,125 @@ function buildComponentNode(node, status, b, root = false) {
|
|
|
717
802
|
let props = [];
|
|
718
803
|
let runs = [];
|
|
719
804
|
let bindingRuns = [];
|
|
720
|
-
for (let { name, value, reactive, fullyReactive, span } of node.attributes) if (name === "self" && node.tagName === "@component") {} else if (
|
|
805
|
+
for (let { name, value, reactive, fullyReactive, span } of node.attributes) if (name === "self" && node.tagName === "@component") {} else if (value != null && fullyReactive) if (name.startsWith("&")) {
|
|
721
806
|
name = name.substring(1);
|
|
722
807
|
props.push({
|
|
723
808
|
name,
|
|
809
|
+
preText: "",
|
|
724
810
|
value,
|
|
725
|
-
|
|
811
|
+
postText: "",
|
|
812
|
+
spans: [span],
|
|
813
|
+
offsets: [],
|
|
814
|
+
lengths: []
|
|
726
815
|
});
|
|
727
816
|
runs.push(`${propsName}["${name}"] = ${value};`);
|
|
728
817
|
bindingRuns.push(`${value} = ${propsName}["${name}"];`);
|
|
729
|
-
} else if (name === "class"
|
|
818
|
+
} else if (name === "class") {
|
|
730
819
|
status.imports.add("t_class");
|
|
731
820
|
const params = [value];
|
|
732
821
|
if (node.scopeStyles) params.push(`"torp-${status.styleHash}"`);
|
|
733
|
-
value =
|
|
822
|
+
value = params.join(", ");
|
|
734
823
|
props.push({
|
|
735
824
|
name,
|
|
825
|
+
preText: "t_class(",
|
|
736
826
|
value,
|
|
737
|
-
|
|
827
|
+
postText: ")",
|
|
828
|
+
spans: [span],
|
|
829
|
+
offsets: [],
|
|
830
|
+
lengths: []
|
|
738
831
|
});
|
|
739
|
-
runs.push(`${propsName}["${name}"] = ${value};`);
|
|
740
|
-
} else if (name === "style"
|
|
832
|
+
runs.push(`${propsName}["${name}"] = t_class(${value});`);
|
|
833
|
+
} else if (name === "style") {
|
|
741
834
|
status.imports.add("t_style");
|
|
742
|
-
value = `t_style(${value})`;
|
|
743
835
|
props.push({
|
|
744
836
|
name,
|
|
837
|
+
preText: "t_style(",
|
|
745
838
|
value,
|
|
746
|
-
|
|
839
|
+
postText: ")",
|
|
840
|
+
spans: [span],
|
|
841
|
+
offsets: [],
|
|
842
|
+
lengths: []
|
|
843
|
+
});
|
|
844
|
+
runs.push(`${propsName}["${name}"] = t_style(${value});`);
|
|
845
|
+
} else {
|
|
846
|
+
props.push({
|
|
847
|
+
name,
|
|
848
|
+
preText: "",
|
|
849
|
+
value,
|
|
850
|
+
postText: "",
|
|
851
|
+
spans: [span],
|
|
852
|
+
offsets: [],
|
|
853
|
+
lengths: []
|
|
747
854
|
});
|
|
748
855
|
runs.push(`${propsName}["${name}"] = ${value};`);
|
|
856
|
+
}
|
|
857
|
+
else if (value != null && reactive) {
|
|
858
|
+
const { newValue, spans, offsets, lengths } = getAttributeOffsets(value, span);
|
|
859
|
+
value = newValue;
|
|
860
|
+
if (name === "class") {
|
|
861
|
+
status.imports.add("t_class");
|
|
862
|
+
const params = [value];
|
|
863
|
+
if (node.scopeStyles) params.push(`"torp-${status.styleHash}"`);
|
|
864
|
+
value = params.join(", ");
|
|
865
|
+
props.push({
|
|
866
|
+
name,
|
|
867
|
+
preText: "t_class(",
|
|
868
|
+
value,
|
|
869
|
+
postText: ")",
|
|
870
|
+
spans,
|
|
871
|
+
offsets,
|
|
872
|
+
lengths
|
|
873
|
+
});
|
|
874
|
+
runs.push(`${propsName}["${name}"] = t_class(${value});`);
|
|
875
|
+
} else if (name === "style") {
|
|
876
|
+
status.imports.add("t_style");
|
|
877
|
+
props.push({
|
|
878
|
+
name,
|
|
879
|
+
preText: "t_style(",
|
|
880
|
+
value,
|
|
881
|
+
postText: ")",
|
|
882
|
+
spans,
|
|
883
|
+
offsets,
|
|
884
|
+
lengths
|
|
885
|
+
});
|
|
886
|
+
runs.push(`${propsName}["${name}"] = t_style(${value});`);
|
|
887
|
+
} else {
|
|
888
|
+
props.push({
|
|
889
|
+
name,
|
|
890
|
+
preText: "",
|
|
891
|
+
value,
|
|
892
|
+
postText: "",
|
|
893
|
+
spans,
|
|
894
|
+
offsets,
|
|
895
|
+
lengths
|
|
896
|
+
});
|
|
897
|
+
runs.push(`${propsName}["${name}"] = ${value};`);
|
|
898
|
+
}
|
|
749
899
|
} else if (value != null) {
|
|
900
|
+
if (name === "class" && node.scopeStyles) value = `"${trimQuotes(value)} torp-${status.styleHash}"`;
|
|
750
901
|
props.push({
|
|
751
902
|
name,
|
|
903
|
+
preText: "",
|
|
752
904
|
value,
|
|
753
|
-
|
|
905
|
+
postText: "",
|
|
906
|
+
spans: [span],
|
|
907
|
+
offsets: [],
|
|
908
|
+
lengths: []
|
|
754
909
|
});
|
|
755
|
-
if (reactive) runs.push(`${propsName}["${name}"] = ${value};`);
|
|
756
910
|
} else props.push({
|
|
757
911
|
name,
|
|
912
|
+
preText: "",
|
|
758
913
|
value: "true",
|
|
759
|
-
|
|
914
|
+
postText: "",
|
|
915
|
+
spans: [span],
|
|
916
|
+
offsets: [],
|
|
917
|
+
lengths: []
|
|
760
918
|
});
|
|
761
919
|
b.append(`const ${propsName} = $watch({`);
|
|
762
920
|
for (let p of props) {
|
|
763
921
|
let value = replaceForVarNames(p.value, status);
|
|
764
|
-
addMappedText(`${p.name}:
|
|
922
|
+
if (p.spans.length === 1) addMappedText(`${p.name}: ` + p.preText, value, p.postText + ",", p.spans[0], status, b);
|
|
923
|
+
else addMappedTextWithOffsets(`${p.name}: ` + p.preText, value, p.postText + ",", p.spans, p.offsets, p.lengths, status, b);
|
|
765
924
|
}
|
|
766
925
|
b.append("});");
|
|
767
926
|
if (runs.length) buildRun("setProps", replaceForVarNames(runs.join("\n"), status), status, b);
|
|
@@ -1100,7 +1259,7 @@ function buildIfNode(node, status, b) {
|
|
|
1100
1259
|
b.append(`
|
|
1101
1260
|
const ${regionName} = t_region(${status.options.dev === true ? `"if"` : ""});
|
|
1102
1261
|
let ${indexName} = -1;
|
|
1103
|
-
t_run_control(${regionName}, ${anchorName}, (t_before) => {`);
|
|
1262
|
+
t_run_control(${regionName}, ${anchorName}, (${status.inHead ? "" : "t_before"}) => {`);
|
|
1104
1263
|
let index = 0;
|
|
1105
1264
|
for (let branch of branches) buildIfBranch(branch, status, b, parentName, regionName, indexName, index++);
|
|
1106
1265
|
b.append(`}${status.options.dev === true ? `, "runIf"` : ""});`);
|
|
@@ -1209,7 +1368,7 @@ function buildSwitchNode(node, status, b) {
|
|
|
1209
1368
|
b.append(`
|
|
1210
1369
|
const ${regionName} = t_region(${status.options.dev === true ? `"switch"` : ""});
|
|
1211
1370
|
let ${indexName} = -1;
|
|
1212
|
-
t_run_control(${regionName}, ${anchorName}, (t_before) => {`);
|
|
1371
|
+
t_run_control(${regionName}, ${anchorName}, (${status.inHead ? "" : "t_before"}) => {`);
|
|
1213
1372
|
addMappedText("", `${replaceForVarNames(node.statement, status)}`, " {", node.span, status, b);
|
|
1214
1373
|
let index = 0;
|
|
1215
1374
|
for (let branch of branches) buildSwitchBranch(branch, status, b, parentName, regionName, indexName, index++);
|
|
@@ -1331,6 +1490,26 @@ function stashRun(fragment, functionStart, value, functionEnd, span, status) {
|
|
|
1331
1490
|
});
|
|
1332
1491
|
}
|
|
1333
1492
|
|
|
1493
|
+
//#endregion
|
|
1494
|
+
//#region src/compile/build/client/stashRunWithOffsets.ts
|
|
1495
|
+
function stashRunWithOffsets(fragment, functionStart, value, functionEnd, spans, offsets, lengths, status) {
|
|
1496
|
+
let functionBody = functionStart + value + functionEnd;
|
|
1497
|
+
for (let i = 0; i < offsets.length; i++) {
|
|
1498
|
+
offsets[i] += functionStart.length;
|
|
1499
|
+
const oldLength = functionBody.length;
|
|
1500
|
+
functionBody = functionBody.substring(0, offsets[i]) + replaceForVarNames(functionBody.substring(offsets[i], offsets[i] + lengths[i]), status) + functionBody.substring(offsets[i] + lengths[i]);
|
|
1501
|
+
const changedLength = functionBody.length - oldLength;
|
|
1502
|
+
lengths[i] += changedLength;
|
|
1503
|
+
for (let j = i + 1; j < offsets.length; j++) offsets[j] += changedLength;
|
|
1504
|
+
}
|
|
1505
|
+
fragment.effects.push({
|
|
1506
|
+
functionBody,
|
|
1507
|
+
spans,
|
|
1508
|
+
offsets,
|
|
1509
|
+
lengths
|
|
1510
|
+
});
|
|
1511
|
+
}
|
|
1512
|
+
|
|
1334
1513
|
//#endregion
|
|
1335
1514
|
//#region src/compile/build/client/buildElementNode.ts
|
|
1336
1515
|
function buildElementNode(node, status, b, parentName, root = false) {
|
|
@@ -1420,26 +1599,46 @@ function buildElementAttributes$1(node, varName, status, b) {
|
|
|
1420
1599
|
let { value, fullyReactive } = refAttribute;
|
|
1421
1600
|
if (value != null && fullyReactive) b.append(`${value} = ${varName};`);
|
|
1422
1601
|
}
|
|
1423
|
-
for (let { name, value, reactive, span
|
|
1602
|
+
for (let { name, value, reactive, fullyReactive, span } of node.attributes) if (name === "self" && node.tagName === "@element") {} else if (name === "&ref") {} else if (value != null && fullyReactive) if (name === "&group") buildBindGroupAttribute(node, varName, value, status, b);
|
|
1424
1603
|
else if (name === "&value" || name === "&checked") buildBindAttribute(node, varName, name, value, status, b);
|
|
1425
1604
|
else if (name === "onmount") buildMount("elMount", `return (${trimEnd(value.trim(), ";")})(${varName});`, status, b);
|
|
1426
|
-
else if (name.startsWith("on")) buildEventAttribute(varName, name, value,
|
|
1605
|
+
else if (name.startsWith("on")) buildEventAttribute(varName, name, value, span, status, b);
|
|
1427
1606
|
else if (name.startsWith("transition")) buildTransitionAttribute(node, varName, name, value, status, b);
|
|
1428
1607
|
else if (name === "class") {
|
|
1429
1608
|
status.imports.add("t_class");
|
|
1430
1609
|
const params = [value];
|
|
1431
1610
|
if (node.scopeStyles) params.push(`"torp-${status.styleHash}"`);
|
|
1432
1611
|
const propName = status.ns ? "className.baseVal" : "className";
|
|
1433
|
-
stashRun(fragment, `${status.ns ? "// @ts-ignore\n" : ""}${varName}.${propName} = t_class(`, params.join(", "), ");",
|
|
1612
|
+
stashRun(fragment, `${status.ns ? "// @ts-ignore\n" : ""}${varName}.${propName} = t_class(`, params.join(", "), ");", span, status);
|
|
1434
1613
|
} else if (name === "style") {
|
|
1435
1614
|
status.imports.add("t_style");
|
|
1436
|
-
stashRun(fragment, `${varName}.setAttribute("style", t_style(`, value, "));",
|
|
1615
|
+
stashRun(fragment, `${varName}.setAttribute("style", t_style(`, value, "));", span, status);
|
|
1437
1616
|
} else if (name.includes("-")) {
|
|
1438
1617
|
status.imports.add("t_attribute");
|
|
1439
|
-
stashRun(fragment, `t_attribute(${varName}, "${name}", `, value, ");",
|
|
1618
|
+
stashRun(fragment, `t_attribute(${varName}, "${name}", `, value, ");", span, status);
|
|
1440
1619
|
} else {
|
|
1441
1620
|
status.imports.add("t_attribute");
|
|
1442
|
-
stashRun(fragment, `t_attribute(${varName}, "${name}", `, value, ");",
|
|
1621
|
+
stashRun(fragment, `t_attribute(${varName}, "${name}", `, value, ");", span, status);
|
|
1622
|
+
}
|
|
1623
|
+
else if (value != null && reactive) {
|
|
1624
|
+
const { newValue, spans, offsets, lengths } = getAttributeOffsets(value, span);
|
|
1625
|
+
value = newValue;
|
|
1626
|
+
if (name === "class") {
|
|
1627
|
+
status.imports.add("t_class");
|
|
1628
|
+
const params = [value];
|
|
1629
|
+
if (node.scopeStyles) params.push(`"torp-${status.styleHash}"`);
|
|
1630
|
+
const propName = status.ns ? "className.baseVal" : "className";
|
|
1631
|
+
stashRunWithOffsets(fragment, `${status.ns ? "// @ts-ignore\n" : ""}${varName}.${propName} = t_class(`, params.join(", "), ");", spans, offsets, lengths, status);
|
|
1632
|
+
} else if (name === "style") {
|
|
1633
|
+
status.imports.add("t_style");
|
|
1634
|
+
stashRunWithOffsets(fragment, `${varName}.setAttribute("style", t_style(`, value, "));", spans, offsets, lengths, status);
|
|
1635
|
+
} else if (name.includes("-")) {
|
|
1636
|
+
status.imports.add("t_attribute");
|
|
1637
|
+
stashRunWithOffsets(fragment, `t_attribute(${varName}, "${name}", `, value, ");", spans, offsets, lengths, status);
|
|
1638
|
+
} else {
|
|
1639
|
+
status.imports.add("t_attribute");
|
|
1640
|
+
stashRunWithOffsets(fragment, `t_attribute(${varName}, "${name}", `, value, ");", spans, offsets, lengths, status);
|
|
1641
|
+
}
|
|
1443
1642
|
}
|
|
1444
1643
|
}
|
|
1445
1644
|
function buildBindGroupAttribute(node, varName, value, status, b) {
|
|
@@ -1603,31 +1802,6 @@ function buildSpecialNode(node, status, b, parentName, root = false) {
|
|
|
1603
1802
|
return "";
|
|
1604
1803
|
}
|
|
1605
1804
|
|
|
1606
|
-
//#endregion
|
|
1607
|
-
//#region src/compile/utils/endOfString.ts
|
|
1608
|
-
function endOfString(char, content, start) {
|
|
1609
|
-
for (let j = start + 1; j < content.length; j++) if (content[j] === char && content[j - 1] !== "\\") return j;
|
|
1610
|
-
return content.length;
|
|
1611
|
-
}
|
|
1612
|
-
|
|
1613
|
-
//#endregion
|
|
1614
|
-
//#region src/compile/build/client/stashRunWithOffsets.ts
|
|
1615
|
-
function stashRunWithOffsets(fragment, functionBody, spans, offsets, lengths, status) {
|
|
1616
|
-
for (let i = 0; i < offsets.length; i++) {
|
|
1617
|
-
const oldLength = functionBody.length;
|
|
1618
|
-
functionBody = functionBody.substring(0, offsets[i]) + replaceForVarNames(functionBody.substring(offsets[i], offsets[i] + lengths[i]), status) + functionBody.substring(offsets[i] + lengths[i]);
|
|
1619
|
-
const changedLength = functionBody.length - oldLength;
|
|
1620
|
-
lengths[i] += changedLength;
|
|
1621
|
-
for (let j = i + 1; j < offsets.length; j++) offsets[j] += changedLength;
|
|
1622
|
-
}
|
|
1623
|
-
fragment.effects.push({
|
|
1624
|
-
functionBody,
|
|
1625
|
-
spans,
|
|
1626
|
-
offsets,
|
|
1627
|
-
lengths
|
|
1628
|
-
});
|
|
1629
|
-
}
|
|
1630
|
-
|
|
1631
1805
|
//#endregion
|
|
1632
1806
|
//#region src/compile/build/client/buildTextNode.ts
|
|
1633
1807
|
function buildTextNode(node, status) {
|
|
@@ -1697,11 +1871,8 @@ function buildTextNode(node, status) {
|
|
|
1697
1871
|
offsetChange = 1;
|
|
1698
1872
|
}
|
|
1699
1873
|
status.imports.add("t_fmt");
|
|
1700
|
-
let functionBody = `${node.varName}.textContent = `;
|
|
1701
|
-
offsetChange += functionBody.length;
|
|
1702
1874
|
offsets.map((_, i) => offsets[i] += offsetChange);
|
|
1703
|
-
|
|
1704
|
-
stashRunWithOffsets(fragment, functionBody, node.spans, offsets, lengths, status);
|
|
1875
|
+
stashRunWithOffsets(fragment, `${node.varName}.textContent = `, textContent, ";", node.spans, offsets, lengths, status);
|
|
1705
1876
|
}
|
|
1706
1877
|
}
|
|
1707
1878
|
|
|
@@ -2269,7 +2440,7 @@ function buildElementAttributes(node, status) {
|
|
|
2269
2440
|
}
|
|
2270
2441
|
else if (value != null && reactive) {
|
|
2271
2442
|
status.imports.add("t_attr");
|
|
2272
|
-
attributes.push(`${name}="${trimQuotes(value).replaceAll("
|
|
2443
|
+
attributes.push(`${name}="${trimQuotes(value).replaceAll("{", "${t_attr(").replaceAll("}", ")}")}"`);
|
|
2273
2444
|
} else if (name === "class" && node.scopeStyles) {
|
|
2274
2445
|
value = value ? `"${trimQuotes(value)} torp-${status.styleHash}"` : `"torp-${status.styleHash}"`;
|
|
2275
2446
|
attributes.push(`${name}="${trimQuotes(value).replaceAll("\"", """)}"`);
|
|
@@ -2719,7 +2890,7 @@ function parseTag(status) {
|
|
|
2719
2890
|
accept("<", status);
|
|
2720
2891
|
let closeTag = accept("/", status);
|
|
2721
2892
|
consumeSpace(status);
|
|
2722
|
-
let tagStart = status.i;
|
|
2893
|
+
let tagStart = status.i + 1;
|
|
2723
2894
|
let snailed = accept("@", status);
|
|
2724
2895
|
let tagName = consumeAlphaNumeric(status);
|
|
2725
2896
|
let tagEnd = status.i;
|
|
@@ -2783,7 +2954,7 @@ function parseAttribute(status) {
|
|
|
2783
2954
|
value = value.substring(1, value.length - 1);
|
|
2784
2955
|
valueStart++;
|
|
2785
2956
|
valueEnd--;
|
|
2786
|
-
}
|
|
2957
|
+
}
|
|
2787
2958
|
} else if (name.startsWith("{") && name.endsWith("}")) {
|
|
2788
2959
|
value = name.substring(1, name.length - 1);
|
|
2789
2960
|
valueStart++;
|
|
@@ -3801,5 +3972,4 @@ function parse(source) {
|
|
|
3801
3972
|
//#endregion
|
|
3802
3973
|
exports.build = build;
|
|
3803
3974
|
exports.buildType = buildType;
|
|
3804
|
-
exports.parse = parse;
|
|
3805
|
-
//# sourceMappingURL=compile.cjs.map
|
|
3975
|
+
exports.parse = parse;
|
package/dist/compile.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as Component } from "./Component-
|
|
1
|
+
import { t as Component } from "./Component-DmWGMgak.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/compile/types/Import.d.ts
|
|
4
4
|
interface Import {
|
|
@@ -216,4 +216,4 @@ interface ParseResult {
|
|
|
216
216
|
declare function parse(source: string): ParseResult;
|
|
217
217
|
//#endregion
|
|
218
218
|
export { type Component, type Template, build, buildType, parse };
|
|
219
|
-
//# sourceMappingURL=compile.d.
|
|
219
|
+
//# sourceMappingURL=compile.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile.d.mts","names":[],"sources":["../src/compile/types/Import.ts","../src/compile/types/SourceSpan.ts","../src/compile/types/ScriptChunk.ts","../src/compile/types/nodes/Fragment.ts","../src/compile/types/nodes/NodeType.ts","../src/compile/types/nodes/TemplateNode.ts","../src/compile/types/nodes/ParentNode.ts","../src/compile/types/nodes/RootNode.ts","../src/compile/types/styles/Attribute.ts","../src/compile/types/styles/StyleBlock.ts","../src/compile/types/styles/Style.ts","../src/types/TemplateComponent.ts","../src/types/Template.ts","../src/compile/types/BuildOptions.ts","../src/compile/types/SourceMapping.ts","../src/compile/types/BuildResult.ts","../src/compile/build.ts","../src/compile/buildType.ts","../src/compile/types/CompileError.ts","../src/compile/types/ParseResult.ts","../src/compile/parse.ts"],"sourcesContent":[],"mappings":";;;UAAyB,MAAA;;;MAAA,EAAA,MAAA;;;;;;UCAA,UAAA;;;;;;UCEA,WAAA;;MFFA,EEIlB,UFJkB;;;;UGEA,QAAA;;MHFA,EAAA,MAAA;;;;SCAA,EEQhB,UFRgB,EAAA;;;;ECAG,MAEH,EAAA;;;;ECFG,CAAA,EAEH;;;;;;KCFpB,QAAA;;;UCEoB,YAAA;QAClB;aLHkB,CAAA,EAAA,OAAA;;;;;;UMGA,UAAA,SAAmB;MNHnB,EMIlB,QNJkB;YMKd;;;;ANLc,UOIA,QAAA,SAAiB,UPJjB,CAAA;;YOMd;aAGC;;;;UCTa,SAAA;;;;;;UCEA,UAAA;;YTFA,ESIZ,STJY,EAAA;YSKd;;;;UCHc,KAAA;;QVFA,EUIhB,UVJgB,EAAA;;;;;UWGA,iBAAA;OXHA,CAAA,EAAA,MAAA;;;;UCAA,CAAA,EAAA,OAAA;;;;ECAG,aAEH,CAAA,EAAA,MAAA;;;WSaf;ERfkB,IAEH,CAAA,EQcjB,QRdiB;UQehB;;;;;;;ENjBiB;;;;;;;;UOOD,QAAA;SXPA,EWQf,MXRe,EAAA;UWShB;cACI;;;;UCVY,YAAA;;;;;;;;;;;AXAG;;;;ACAA;;;;kBCAvB,CAAA,EAAA,OAAA;;;;ECAqB,YAED,CAAA,EAAA,MAAA;;;;USAA,aAAA;;QdFA,EcIhB,UdJgB;YcKd;;;;UCHc,WAAA;;QfFA,EAAA;;;;KCAA,EcQnB,adRmB,EAAA;;;;;;;;;;;iBeeD,KAAA,WAAgB,oBAAoB,eAAe;;;;;;;;;;;iBCHnD,SAAA,WAAoB,oBAAoB;;;UCZvC,YAAA;;;WlBAA,EAAA,MAAA;;;;SCAA,EAAA,MAAA;;;;UkBGA,WAAA;MnBHA,OAAA;UmBKhB;aACG;;;;;;;;;;;;iBCKY,KAAA,kBAAuB"}
|