tungsten 0.1.59 → 0.1.60
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/AnyComponent.d.ts.map +1 -1
- package/dist/ComponentInstance.d.ts +1 -2
- package/dist/ComponentInstance.d.ts.map +1 -1
- package/dist/ComponentInstance.js +4 -1
- package/dist/ComponentRenderInfo.type.d.ts +6 -0
- package/dist/ComponentRenderInfo.type.d.ts.map +1 -0
- package/dist/ComponentRenderInfo.type.js +1 -0
- package/dist/Components.d.ts +4 -2
- package/dist/Components.d.ts.map +1 -1
- package/dist/Components.js +10 -4
- package/dist/ContentNode.d.ts +3 -1
- package/dist/ContentNode.d.ts.map +1 -1
- package/dist/ContentNode.js +1 -0
- package/dist/Framework.d.ts +1 -1
- package/dist/Framework.d.ts.map +1 -1
- package/dist/Framework.js +42 -25
- package/dist/FrameworkConfig.d.ts +20 -4
- package/dist/FrameworkConfig.d.ts.map +1 -1
- package/dist/FunctionComponent.d.ts +2 -0
- package/dist/FunctionComponent.d.ts.map +1 -1
- package/dist/FunctionComponentStandIn.d.ts +4 -4
- package/dist/FunctionComponentStandIn.d.ts.map +1 -1
- package/dist/FunctionComponentStandIn.js +4 -2
- package/dist/Instance/InstanceConfig.d.ts +2 -0
- package/dist/Instance/InstanceConfig.d.ts.map +1 -1
- package/dist/RenderedContentNode.d.ts +1 -1
- package/dist/RenderedContentNode.d.ts.map +1 -1
- package/dist/RenderedContentNode.js +2 -2
- package/dist/RenderingNode.d.ts +23 -8
- package/dist/RenderingNode.d.ts.map +1 -1
- package/dist/RenderingNode.js +39 -8
- package/dist/Servers/DevServer.d.ts.map +1 -1
- package/dist/Servers/DevServer.js +74 -25
- package/dist/Servers/ProdServer.d.ts +5 -1
- package/dist/Servers/ProdServer.d.ts.map +1 -1
- package/dist/Servers/ProdServer.js +49 -33
- package/dist/TungstenElement.d.ts +3 -0
- package/dist/TungstenElement.d.ts.map +1 -0
- package/dist/TungstenElement.js +1 -0
- package/dist/_client/client.d.ts +4 -1
- package/dist/_client/client.d.ts.map +1 -1
- package/dist/_client/client.js +16 -9
- package/dist/babelPlugins/BabelTransformCjsToEsm.d.ts +1 -1
- package/dist/babelPlugins/BabelTransformCjsToEsm.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformCjsToFunction.d.ts +1 -1
- package/dist/babelPlugins/BabelTransformCjsToFunction.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformCjsToFunction2.d.ts +1 -1
- package/dist/babelPlugins/BabelTransformCjsToFunction2.d.ts.map +1 -1
- package/dist/babelPlugins/{BabelTransformCssImport.d.ts → BabelTransformCssImports.d.ts} +3 -2
- package/dist/babelPlugins/BabelTransformCssImports.d.ts.map +1 -0
- package/dist/babelPlugins/{BabelTransformCssImport.js → BabelTransformCssImports.js} +27 -5
- package/dist/babelPlugins/BabelTransformPackageImports.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformPackageImports.js +75 -37
- package/dist/babelPlugins/BabelTransformRemoveServerBlocks.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformRemoveServerBlocks.js +5 -0
- package/dist/babelPlugins/BabelTransformRemoveServerCode.d.ts +2 -0
- package/dist/babelPlugins/BabelTransformRemoveServerCode.d.ts.map +1 -0
- package/dist/babelPlugins/BabelTransformRemoveServerCode.js +1 -0
- package/dist/babelPlugins/fixImportsInSassErrorMessage.d.ts.map +1 -1
- package/dist/babelPlugins/{BabelTransformDependencyImportsCjs.d.ts → transformPackageImports/BabelTransformDependencyImportsCjs.d.ts} +1 -1
- package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsCjs.d.ts.map +1 -0
- package/dist/babelPlugins/{BabelTransformDependencyImportsCjs.js → transformPackageImports/BabelTransformDependencyImportsCjs.js} +12 -3
- package/dist/babelPlugins/{BabelTransformDependencyImportsEsm.d.ts → transformPackageImports/BabelTransformDependencyImportsEsm.d.ts} +1 -1
- package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsEsm.d.ts.map +1 -0
- package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsEsm.js +112 -0
- package/dist/bin/commands/compileSimplePackage.d.ts +2 -0
- package/dist/bin/commands/compileSimplePackage.d.ts.map +1 -0
- package/dist/bin/commands/compileSimplePackage.js +51 -0
- package/dist/bin/commands/static.js +2 -2
- package/dist/bin/index.d.ts.map +1 -1
- package/dist/bin/index.js +5 -0
- package/dist/build/babel.user.common.config.js +9 -3
- package/dist/build/bundle.d.ts +1 -2
- package/dist/build/bundle.d.ts.map +1 -1
- package/dist/build/bundle.js +7 -4
- package/dist/build/compileJavascript.d.ts.map +1 -1
- package/dist/build/compileJavascript.js +22 -11
- package/dist/build/compilePackages.d.ts +0 -5
- package/dist/build/compilePackages.d.ts.map +1 -1
- package/dist/build/compilePackages.js +89 -82
- package/dist/build/compileUserApp.d.ts.map +1 -1
- package/dist/build/copyPackageModulesToPackagesFolder.d.ts.map +1 -1
- package/dist/build/copyPackageModulesToPackagesFolder.js +3 -1
- package/dist/build/createClientFiles.d.ts.map +1 -1
- package/dist/build/createClientFiles.js +43 -52
- package/dist/build/createInstanceConfigFile.d.ts +4 -0
- package/dist/build/createInstanceConfigFile.d.ts.map +1 -0
- package/dist/build/{createAppConfig.js → createInstanceConfigFile.js} +2 -2
- package/dist/build/makeBabelUserDevConfig.d.ts.map +1 -1
- package/dist/build/makeBabelUserDevConfig.js +3 -2
- package/dist/build/makeBabelUserProdConfig.js +3 -2
- package/dist/components/Stylesheet.d.ts +1 -0
- package/dist/components/Stylesheet.d.ts.map +1 -1
- package/dist/components/Stylesheet.js +24 -3
- package/dist/createRef.d.ts +4 -2
- package/dist/createRef.d.ts.map +1 -1
- package/dist/createRef.js +5 -2
- package/dist/defaultConfig.d.ts +1 -0
- package/dist/defaultConfig.d.ts.map +1 -1
- package/dist/defaultConfig.js +1 -0
- package/dist/findUserConfig.d.ts.map +1 -1
- package/dist/findUserConfig.js +1 -1
- package/dist/frameworkConfigSchema.d.ts +188 -0
- package/dist/frameworkConfigSchema.d.ts.map +1 -0
- package/dist/frameworkConfigSchema.js +65 -0
- package/dist/getConfig.d.ts +1 -15
- package/dist/getConfig.d.ts.map +1 -1
- package/dist/getConfig.js +12 -11
- package/dist/getRoutes.d.ts.map +1 -1
- package/dist/getRoutes.js +20 -15
- package/dist/getUserConfig.d.ts +3 -0
- package/dist/getUserConfig.d.ts.map +1 -0
- package/dist/getUserConfig.js +25 -0
- package/dist/hooks/getCurrentComponent.d.ts +4 -0
- package/dist/hooks/getCurrentComponent.d.ts.map +1 -1
- package/dist/hooks/getCurrentComponent.js +8 -2
- package/dist/hooks/globalType.d.ts +2 -0
- package/dist/hooks/globalType.d.ts.map +1 -0
- package/dist/hooks/globalType.js +1 -0
- package/dist/hooks/useState.d.ts +1 -1
- package/dist/hooks/useState.d.ts.map +1 -1
- package/dist/hooks/useState.js +5 -5
- package/dist/hydrate/hydrate.d.ts +1 -1
- package/dist/hydrate/hydrate.d.ts.map +1 -1
- package/dist/hydrate/hydrate.js +192 -53
- package/dist/jsx-runtime.d.ts +2 -0
- package/dist/jsx-runtime.d.ts.map +1 -0
- package/dist/jsx-runtime.js +1 -0
- package/dist/jsxRuntime.d.ts.map +1 -1
- package/dist/jsxRuntime.js +5 -1
- package/dist/makeFinalConfig.d.ts.map +1 -1
- package/dist/makeInstanceConfigFromFrameworkConfig.d.ts +4 -0
- package/dist/makeInstanceConfigFromFrameworkConfig.d.ts.map +1 -0
- package/dist/makeInstanceConfigFromFrameworkConfig.js +12 -0
- package/dist/render/componentNodeToRenderingTree.d.ts +6 -0
- package/dist/render/componentNodeToRenderingTree.d.ts.map +1 -0
- package/dist/render/componentNodeToRenderingTree.js +41 -0
- package/dist/render/contentToHtml.d.ts +9 -0
- package/dist/render/contentToHtml.d.ts.map +1 -0
- package/dist/render/contentToHtml.js +44 -0
- package/dist/render/contentToHtmlDev.d.ts +9 -0
- package/dist/render/contentToHtmlDev.d.ts.map +1 -0
- package/dist/render/contentToHtmlDev.js +4 -0
- package/dist/render/contentTreeToRenderingTree.d.ts.map +1 -1
- package/dist/render/contentTreeToRenderingTree.js +8 -8
- package/dist/render/functionComponentNodeToRenderingTree.d.ts.map +1 -1
- package/dist/render/functionComponentNodeToRenderingTree.js +4 -2
- package/dist/render/instantiateClassComponent.d.ts +2 -2
- package/dist/render/instantiateClassComponent.d.ts.map +1 -1
- package/dist/render/instantiateClassComponent.js +1 -1
- package/dist/render/instantiateComponent.d.ts.map +1 -1
- package/dist/render/processProps.d.ts.map +1 -1
- package/dist/render/processProps.js +1 -1
- package/dist/render/renderingTreeToHtml.d.ts.map +1 -1
- package/dist/render/renderingTreeToHtml.js +42 -8
- package/dist/render/rootToHtml.d.ts +2 -1
- package/dist/render/rootToHtml.d.ts.map +1 -1
- package/dist/render/rootToHtml.js +12 -6
- package/dist/render/rootToHtmlDev.d.ts +4 -3
- package/dist/render/rootToHtmlDev.d.ts.map +1 -1
- package/dist/render/rootToHtmlDev.js +2 -2
- package/dist/routing/MatchedRoute.d.ts.map +1 -1
- package/dist/routing/MatchedRoute.js +0 -3
- package/dist/routing/runContentFunction.d.ts +2 -0
- package/dist/routing/runContentFunction.d.ts.map +1 -0
- package/dist/routing/runContentFunction.js +13 -0
- package/dist/staticGen/getAppRoutes.d.ts.map +1 -1
- package/dist/staticGen/getAppRoutes.js +7 -6
- package/dist/staticGen/staticGen.d.ts.map +1 -1
- package/dist/staticGen/staticGen.js +9 -1
- package/dist/update/integrateUpdateVdom.d.ts +13 -1
- package/dist/update/integrateUpdateVdom.d.ts.map +1 -1
- package/dist/update/integrateUpdateVdom.js +112 -49
- package/dist/validChildren.d.ts +4 -2
- package/dist/validChildren.d.ts.map +1 -1
- package/dist/validChildren.js +4 -0
- package/package.json +11 -10
- package/types/jsx/jsx.d.ts +10 -7
- package/dist/babelPlugins/BabelTransformCssImport.d.ts.map +0 -1
- package/dist/babelPlugins/BabelTransformDependencyImportsCjs.d.ts.map +0 -1
- package/dist/babelPlugins/BabelTransformDependencyImportsEsm.d.ts.map +0 -1
- package/dist/babelPlugins/BabelTransformDependencyImportsEsm.js +0 -85
- package/dist/build/compileEnv.d.ts +0 -2
- package/dist/build/compileEnv.d.ts.map +0 -1
- package/dist/build/compileEnv.js +0 -132
- package/dist/build/createAppConfig.d.ts +0 -4
- package/dist/build/createAppConfig.d.ts.map +0 -1
- package/dist/build/webpack.user.prod.config.d.ts +0 -2
- package/dist/build/webpack.user.prod.config.d.ts.map +0 -1
- package/dist/build/webpack.user.prod.config.js +0 -337
- package/dist/createInstanceConfigFromFrameworkConfig.d.ts +0 -4
- package/dist/createInstanceConfigFromFrameworkConfig.d.ts.map +0 -1
- package/dist/createInstanceConfigFromFrameworkConfig.js +0 -9
- package/dist/getAppConfig.d.ts +0 -3
- package/dist/getAppConfig.d.ts.map +0 -1
- package/dist/getAppConfig.js +0 -12
- package/dist/render/componentNodeToRenderingToTree.d.ts +0 -6
- package/dist/render/componentNodeToRenderingToTree.d.ts.map +0 -1
- package/dist/render/componentNodeToRenderingToTree.js +0 -15
- package/dist/render/componentNodeToTree.d.ts +0 -5
- package/dist/render/componentNodeToTree.d.ts.map +0 -1
- package/dist/render/componentNodeToTree.js +0 -16
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ContentNodeClassComponent } from '../ContentNode.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { TungstenElement } from '../TungstenElement.js';
|
|
3
3
|
import type { Instance } from '../Instance/Instance.js';
|
|
4
|
-
export declare function instantiateClassComponent(node: ContentNodeClassComponent, parentComponent: (
|
|
4
|
+
export declare function instantiateClassComponent(node: ContentNodeClassComponent, parentComponent: (TungstenElement | null) | undefined, instance: Instance): Promise<import("../Components.jsx").TungstenBaseComponent<any, any>>;
|
|
5
5
|
//# sourceMappingURL=instantiateClassComponent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instantiateClassComponent.d.ts","sourceRoot":"","sources":["../../src/render/instantiateClassComponent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"instantiateClassComponent.d.ts","sourceRoot":"","sources":["../../src/render/instantiateClassComponent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAIvD,wBAAsB,yBAAyB,CAC3C,IAAI,EAAE,yBAAyB,EAAE,eAAe,GAAE,eAAe,GAAG,IAAI,aAAO,EAAE,QAAQ,EAAE,QAAQ,wEAetG"}
|
|
@@ -7,7 +7,7 @@ export async function instantiateClassComponent(node, parentComponent = null, in
|
|
|
7
7
|
routeParams: node[$routeParams],
|
|
8
8
|
routeData: node[$routeData],
|
|
9
9
|
instance,
|
|
10
|
-
parentComponent
|
|
10
|
+
parentElement: parentComponent
|
|
11
11
|
});
|
|
12
12
|
//console.log('init on', Component.name)
|
|
13
13
|
await element.__init();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instantiateComponent.d.ts","sourceRoot":"","sources":["../../src/render/instantiateComponent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,uBAAuB,EAAwC,MAAM,mBAAmB,CAAA;AACjG,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAIlD,wBAAgB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"instantiateComponent.d.ts","sourceRoot":"","sources":["../../src/render/instantiateComponent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,uBAAuB,EAAwC,MAAM,mBAAmB,CAAA;AACjG,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAIlD,wBAAgB,oBAAoB,CAChC,IAAI,EAAE,uBAAuB,EAAE,eAAe,EAAE,YAAY,GAAG,IAAI,EAAE,QAAQ,EAAE,QAAQ,mLAS1F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processProps.d.ts","sourceRoot":"","sources":["../../src/render/processProps.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"processProps.d.ts","sourceRoot":"","sources":["../../src/render/processProps.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAA;AAqBjE,wBAAgB,YAAY,CAAC,KAAK,EAAE,6BAA6B,iCA2ChE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { objects } from 'sxy-lib';
|
|
2
2
|
import { jssToCss } from "../style/jssToCss.js";
|
|
3
|
-
const omitProps = ['onClick', 'onChange', 'onSubmit', 'onKeyDown', 'onKeyUp', 'onKeyPress', 'onMouseDown', 'onMouseUp', 'onMouseMove', 'onMouseEnter', 'onMouseLeave', 'onMouseOver', 'onMouseOut'];
|
|
3
|
+
const omitProps = ['ref', 'onClick', 'onChange', 'onSubmit', 'onKeyDown', 'onKeyUp', 'onKeyPress', 'onMouseDown', 'onMouseUp', 'onMouseMove', 'onMouseEnter', 'onMouseLeave', 'onMouseOver', 'onMouseOut'];
|
|
4
4
|
//// !!!! We need to handle bind here
|
|
5
5
|
export function processProps(props) {
|
|
6
6
|
props = objects.filter(props, key => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderingTreeToHtml.d.ts","sourceRoot":"","sources":["../../src/render/renderingTreeToHtml.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"renderingTreeToHtml.d.ts","sourceRoot":"","sources":["../../src/render/renderingTreeToHtml.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAY7C,OAAO,EACH,KAAK,aAAa,EAGrB,MAAM,qBAAqB,CAAA;AAS5B,wBAAsB,mBAAmB,CACrC,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,GAClF,OAAO,CAAC,MAAM,CAAC,CAoIjB"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { reduce as objectReduce } from 'sxy-lib/objects.js';
|
|
2
|
-
import { ContentNodeElementIsComponent } from "../ContentNode.js";
|
|
3
2
|
import { processProps } from "./processProps.js";
|
|
4
3
|
import { htmlVoidTags } from "./htmlVoidTags.js";
|
|
5
|
-
import {
|
|
4
|
+
import { validRenderingChildren } from "../validChildren.js";
|
|
6
5
|
import { htmlEntities } from "../htmlEntities.js";
|
|
7
6
|
import { htmlSelfClosableTags } from "./htmlSelfClosableTags.js";
|
|
8
7
|
import { htmlMonoTags } from "./htmlMonoTags.js";
|
|
@@ -11,7 +10,7 @@ import { TungstenError } from "../TungstenError.js";
|
|
|
11
10
|
import { throwError } from "../throwError.js";
|
|
12
11
|
import { $props, $type } from "../contentNodeSymbols.js";
|
|
13
12
|
import { printComponentNamesInSource } from "./printComponentNameInSource.js";
|
|
14
|
-
import { RenderingNodeElementIsHtml } from "../RenderingNode.js";
|
|
13
|
+
import { RenderingNodeElementIsComponent, RenderingNodeElementIsHtml, RenderingNodeIsHtml, RenderingNodeIsLiteral, RenderingNodeIsNonRendered } from "../RenderingNode.js";
|
|
15
14
|
import { processHead } from "./processHead.js";
|
|
16
15
|
import { processRenderingNodeHtml } from "./processRenderingNodeHtml.js";
|
|
17
16
|
//// Maybe we should build the full tree before rendering
|
|
@@ -87,10 +86,10 @@ export async function renderingNodeToHtml(node, noEscape, headData, parent) {
|
|
|
87
86
|
children,
|
|
88
87
|
...attribProps
|
|
89
88
|
} = node[$props]);
|
|
90
|
-
debug('validChildren(children)',
|
|
91
|
-
if (
|
|
89
|
+
debug('validChildren(children)', validRenderingChildren(children));
|
|
90
|
+
if (validRenderingChildren(children)) {
|
|
92
91
|
if (type in htmlVoidTags) {
|
|
93
|
-
throw new TungstenError(`nodeToHtml() error: node ${JSON.stringify(node)} type ${type} is an HTML void type (cannot have children), but the node has children.`);
|
|
92
|
+
throw new TungstenError(`nodeToHtml() error: node ${JSON.stringify(node)} type ${type} is an HTML void type` + ` (cannot have children), but the node has children.`);
|
|
94
93
|
}
|
|
95
94
|
debug('children', children);
|
|
96
95
|
const noEscape = type === 'script' || type === 'style' || '__noEscape' in node[$props] && node[$props].__noEscape !== false;
|
|
@@ -107,14 +106,49 @@ export async function renderingNodeToHtml(node, noEscape, headData, parent) {
|
|
|
107
106
|
}
|
|
108
107
|
}
|
|
109
108
|
}
|
|
110
|
-
if (
|
|
109
|
+
if (RenderingNodeElementIsComponent(node)) {
|
|
110
|
+
//console.log('componentRenderingNode', node)
|
|
111
111
|
//if (node[$type] === Stylesheet) {
|
|
112
112
|
// console.log('rendering stylesheet', node)
|
|
113
113
|
//}
|
|
114
|
-
const
|
|
114
|
+
const {
|
|
115
|
+
children
|
|
116
|
+
} = node[$props];
|
|
117
|
+
const inner = await renderingNodeToHtml(children, noEscape, headData, node);
|
|
118
|
+
// const meta = (node[$placeholder]) ? ' -content-length=' + treeWidth(children).toString() : ''
|
|
119
|
+
// return printComponentNamesInSource
|
|
120
|
+
// ? '<!--' + node[$type].name + meta + '-->' + inner + '<!--/' + node[$type].name + '-->'
|
|
121
|
+
// : '<!--' + meta + '-->' + inner + '<!---->'
|
|
115
122
|
return printComponentNamesInSource ? '<!--' + node[$type].name + '-->' + inner + '<!--/' + node[$type].name + '-->' : '<!---->' + inner + '<!---->';
|
|
116
123
|
//throw new Error(`I don't think this ever happens`) // testing
|
|
117
124
|
}
|
|
125
|
+
node;
|
|
126
|
+
// if (RenderingNodeElementIsPlaceholder(node)) {
|
|
127
|
+
// console.log('placeholder rendering node', node)
|
|
128
|
+
// const inner: string = await renderingNodeToHtml(node[$props].children, noEscape, headData, node)
|
|
129
|
+
// console.log('placeholder content')
|
|
130
|
+
// const meta = `-content-length = inner.length`
|
|
131
|
+
// return printComponentNamesInSource
|
|
132
|
+
// ? '<!--' + node[$component].name + ' ' + meta + '-->' + inner + '<!--/' + node[$component].name + '-->'
|
|
133
|
+
// : '<!--' + ' ' + meta + '-->' + inner + '<!---->'
|
|
134
|
+
// }
|
|
135
|
+
// node
|
|
118
136
|
const n = node; // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
119
137
|
throwError('render -> treeToHtml()', `node returned from a component did not match expected format.` + ` Node: ${JSON.stringify(node)}`);
|
|
138
|
+
}
|
|
139
|
+
function treeWidth(tree) {
|
|
140
|
+
if (RenderingNodeIsNonRendered(tree)) return 0;
|
|
141
|
+
if (RenderingNodeIsLiteral(tree)) return 1;
|
|
142
|
+
tree;
|
|
143
|
+
if (RenderingNodeIsHtml(tree)) return 1;
|
|
144
|
+
tree;
|
|
145
|
+
if (Array.isArray(tree)) {
|
|
146
|
+
let len = 0;
|
|
147
|
+
for (const node of tree) {
|
|
148
|
+
len += treeWidth(node);
|
|
149
|
+
}
|
|
150
|
+
return len;
|
|
151
|
+
}
|
|
152
|
+
tree;
|
|
153
|
+
return treeWidth(tree[$props].children);
|
|
120
154
|
}
|
|
@@ -4,5 +4,6 @@ import type { SiteBasePath } from './HeadData.js';
|
|
|
4
4
|
import type { AnyComponentType } from '../AnyComponentType.js';
|
|
5
5
|
import type { Instance } from '../Instance/Instance.js';
|
|
6
6
|
import { TungstenEnvOrUndefined } from 'tungsten/env/types.js';
|
|
7
|
-
|
|
7
|
+
import { FrameworkConfigComplete } from 'tungsten/FrameworkConfig.js';
|
|
8
|
+
export declare function rootToHtml(compilationInfo: CompilationInfo, clientImportAliases: ImportAliases, RootComponentClass: AnyComponentType, instance: Instance, config: FrameworkConfigComplete, siteBasePathOverride: SiteBasePath, tungstenPublicEnv?: TungstenEnvOrUndefined, dev?: boolean): Promise<string>;
|
|
8
9
|
//# sourceMappingURL=rootToHtml.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rootToHtml.d.ts","sourceRoot":"","sources":["../../src/render/rootToHtml.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAK,EAAY,YAAY,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAE9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"rootToHtml.d.ts","sourceRoot":"","sources":["../../src/render/rootToHtml.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAK,EAAY,YAAY,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAE9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAMvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAI9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AAGrE,wBAAsB,UAAU,CAC5B,eAAe,EAAE,eAAe,EAAE,mBAAmB,EAAE,aAAa,EACpE,kBAAkB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,uBAAuB,EACzF,oBAAoB,EAAE,YAAY,EAAE,iBAAiB,GAAE,sBAAkC,EACzF,GAAG,UAAQ,GACZ,OAAO,CAAC,MAAM,CAAC,CAwDjB"}
|
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
import { renderingNodeToHtml } from "./renderingTreeToHtml.js";
|
|
2
2
|
import { TungstenError } from "../TungstenError.js";
|
|
3
|
-
import {
|
|
3
|
+
import { componentNodeToRenderingTree } from "./componentNodeToRenderingTree.js";
|
|
4
4
|
import { $props, $type } from "../contentNodeSymbols.js";
|
|
5
5
|
import { RenderingNodeIsElement } from "../RenderingNode.js";
|
|
6
|
-
|
|
6
|
+
import { writeFileSync } from 'fs';
|
|
7
|
+
import { contentToHtml } from "./contentToHtml.js";
|
|
8
|
+
export async function rootToHtml(compilationInfo, clientImportAliases, RootComponentClass, instance, config, siteBasePathOverride, tungstenPublicEnv = undefined, dev = false) {
|
|
7
9
|
const rootNode = {
|
|
8
10
|
[$type]: RootComponentClass,
|
|
9
11
|
// TypeScript needs some help to understand that { type: AnyComponentType }
|
|
10
12
|
[$props]: {} // is equivalent to { type: ClassComponentTypeAny } | { type: FunctionComponentTypeAny } (type names simplified here)
|
|
11
13
|
};
|
|
12
|
-
|
|
13
|
-
|
|
14
|
+
return contentToHtml(compilationInfo, clientImportAliases, rootNode, instance, config, siteBasePathOverride, tungstenPublicEnv, dev);
|
|
15
|
+
// return contentTreeToRenderingTree(
|
|
16
|
+
// rootNode, null, instance, false
|
|
17
|
+
// )
|
|
18
|
+
const tree = await componentNodeToRenderingTree(rootNode, null, instance, false);
|
|
14
19
|
//console.log('tree', tree)
|
|
15
20
|
if (!RenderingNodeIsElement(tree)) {
|
|
16
21
|
throw new TungstenError(`Root content was not a ContentNodeElement type. Ensure that your root node returns valid content.`);
|
|
@@ -24,12 +29,13 @@ export async function rootToHtml(compilationInfo, clientImportAliases, RootCompo
|
|
|
24
29
|
compilationLocation: compilationInfo.location,
|
|
25
30
|
dev,
|
|
26
31
|
tungstenPublicEnv,
|
|
27
|
-
siteBasePath:
|
|
32
|
+
siteBasePath: siteBasePathOverride
|
|
28
33
|
};
|
|
34
|
+
//console.log('rendering tree', inspect(tree, { depth: 99 } ))
|
|
29
35
|
let html = await renderingNodeToHtml(tree, false, headData, null);
|
|
36
|
+
writeFileSync('page.html', html);
|
|
30
37
|
//console.log('rootToHtml html', html)
|
|
31
38
|
// insert the title if one was set during processing
|
|
32
|
-
//console.log('instance title', instance.title)
|
|
33
39
|
if (instance.title) {
|
|
34
40
|
if (html.includes('<title>')) {
|
|
35
41
|
html = html.replace(/(?:<title>)(.*?)(?:<\/title>)/, `<title>${instance.title}</title>`);
|
|
@@ -2,7 +2,8 @@ import type { CompilationInfo } from '../build/CompilationInfo.js';
|
|
|
2
2
|
import type { ImportAliases } from '../build/ImportAliases.js';
|
|
3
3
|
import type { AnyComponentType } from '../AnyComponentType.js';
|
|
4
4
|
import type { Instance } from '../Instance/Instance.js';
|
|
5
|
-
import { SiteBasePath } from './HeadData.js';
|
|
6
|
-
import { TungstenEnvOrUndefined } from '
|
|
7
|
-
|
|
5
|
+
import type { SiteBasePath } from './HeadData.js';
|
|
6
|
+
import type { TungstenEnvOrUndefined } from '../env/types.js';
|
|
7
|
+
import type { FrameworkConfigComplete } from '../FrameworkConfig.js';
|
|
8
|
+
export declare function rootToHtmlDev(compilationInfo: CompilationInfo, clientImportAliases: ImportAliases, RootComponentClass: AnyComponentType, instance: Instance, config: FrameworkConfigComplete, tungstenPrivateEnv: TungstenEnvOrUndefined, siteBasePathOverride: SiteBasePath): Promise<string>;
|
|
8
9
|
//# sourceMappingURL=rootToHtmlDev.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rootToHtmlDev.d.ts","sourceRoot":"","sources":["../../src/render/rootToHtmlDev.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAI,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAI,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"rootToHtmlDev.d.ts","sourceRoot":"","sources":["../../src/render/rootToHtmlDev.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAI,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAI,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,KAAI,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,KAAI,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAGpE,wBAAsB,aAAa,CAC/B,eAAe,EAAE,eAAe,EAAG,mBAAmB,EAAE,aAAa,EACrE,kBAAkB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,uBAAuB,EACzF,kBAAkB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,YAAY,mBAMjF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { rootToHtml } from "./rootToHtml.js";
|
|
2
|
-
export async function rootToHtmlDev(compilationInfo, clientImportAliases, RootComponentClass, instance, tungstenPrivateEnv,
|
|
3
|
-
return await rootToHtml(compilationInfo, clientImportAliases, RootComponentClass, instance,
|
|
2
|
+
export async function rootToHtmlDev(compilationInfo, clientImportAliases, RootComponentClass, instance, config, tungstenPrivateEnv, siteBasePathOverride) {
|
|
3
|
+
return await rootToHtml(compilationInfo, clientImportAliases, RootComponentClass, instance, config, siteBasePathOverride, tungstenPrivateEnv, true);
|
|
4
4
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MatchedRoute.d.ts","sourceRoot":"","sources":["../../src/routing/MatchedRoute.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oCAAoC,EAAE,MAAM,mBAAmB,CAAA;AAKxE,MAAM,MAAM,iBAAiB,GAAG;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AACD,qBAAa,YAAa,SAAQ,oCAAoC,CAAC,iBAAiB,CAAC;IACrF,IAAI,aAA4C;IAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"MatchedRoute.d.ts","sourceRoot":"","sources":["../../src/routing/MatchedRoute.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oCAAoC,EAAE,MAAM,mBAAmB,CAAA;AAKxE,MAAM,MAAM,iBAAiB,GAAG;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AACD,qBAAa,YAAa,SAAQ,oCAAoC,CAAC,iBAAiB,CAAC;IACrF,IAAI,aAA4C;IAChD,OAAO,qQAaN;CACJ"}
|
|
@@ -17,9 +17,6 @@ export class MatchedRoute extends TungstenSimpleInternalStoreComponent {
|
|
|
17
17
|
content,
|
|
18
18
|
data
|
|
19
19
|
} = this.__instance.matchedRouteInfo;
|
|
20
|
-
//console.log('MatchedRoute params', params)
|
|
21
|
-
//console.log('MatchedRoute content', content)
|
|
22
|
-
//console.log('MatchedRoute data', data)
|
|
23
20
|
if (typeof content === 'function') {
|
|
24
21
|
return content(data, params, this.props, this.__instance.globalData, this.__instance.location);
|
|
25
22
|
} else {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runContentFunction.d.ts","sourceRoot":"","sources":["../../src/routing/runContentFunction.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// import { ContentFunction } from "tungsten/ContentFunction.js"
|
|
2
|
+
// import type { ContentNode } from "../ContentNode.js"
|
|
3
|
+
export {};
|
|
4
|
+
// export function runContentFunction(
|
|
5
|
+
// contentFunction: ContentFunction,
|
|
6
|
+
// data,
|
|
7
|
+
// params,
|
|
8
|
+
// props,
|
|
9
|
+
// globalData,
|
|
10
|
+
// location
|
|
11
|
+
// ): Promise<ContentNode> {
|
|
12
|
+
// return: contentFunction(data, params, this.props, this.__instance.globalData, this.__instance.location)
|
|
13
|
+
// }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAppRoutes.d.ts","sourceRoot":"","sources":["../../src/staticGen/getAppRoutes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAGlE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAIzD,wBAAsB,YAAY,CAAC,eAAe,EAAE,eAAe,EAAE,MAAM,EAAE,uBAAuB,GAC9F,OAAO,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"getAppRoutes.d.ts","sourceRoot":"","sources":["../../src/staticGen/getAppRoutes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAGlE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAIzD,wBAAsB,YAAY,CAAC,eAAe,EAAE,eAAe,EAAE,MAAM,EAAE,uBAAuB,GAC9F,OAAO,CAAC,SAAS,CAAC,CAuBvB"}
|
|
@@ -5,14 +5,15 @@ import { TungstenError } from "../TungstenError.js";
|
|
|
5
5
|
// should compare this to the functions used by Servers
|
|
6
6
|
export async function getAppRoutes(compilationInfo, config) {
|
|
7
7
|
const fullBuildLocation = 'file://' + compilationInfo.location;
|
|
8
|
-
const
|
|
8
|
+
const routesLocation = config.routesLocation;
|
|
9
|
+
if (routesLocation === null) return routesLocation;
|
|
9
10
|
try {
|
|
10
|
-
if (Array.isArray(
|
|
11
|
-
const routesFile = fixExtension(join(fullBuildLocation,
|
|
12
|
-
return (await import(routesFile))[
|
|
11
|
+
if (Array.isArray(routesLocation)) {
|
|
12
|
+
const routesFile = fixExtension(join(fullBuildLocation, routesLocation[0]));
|
|
13
|
+
return (await import(routesFile))[routesLocation[1]];
|
|
13
14
|
} else {
|
|
14
|
-
const module = await import(join(fullBuildLocation,
|
|
15
|
-
if ('routes' in module) return module.routes;else if ('default' in module) return module.default;else throw new TungstenError(`Err, no 'routes' or 'default' export found in routes file ${
|
|
15
|
+
const module = await import(join(fullBuildLocation, routesLocation));
|
|
16
|
+
if ('routes' in module) return module.routes;else if ('default' in module) return module.default;else throw new TungstenError(`Err, no 'routes' or 'default' export found in routes file ${routesLocation}`);
|
|
16
17
|
}
|
|
17
18
|
} catch (e) {
|
|
18
19
|
throw new TungstenError(`Error loading app routes. You can specify the location of your routes object in tungsten.config.js,` + ` e.g. routesLocation: ['Routes.jsx', 'routes'] (file, exportName)` + `\n${e}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staticGen.d.ts","sourceRoot":"","sources":["../../src/staticGen/staticGen.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"staticGen.d.ts","sourceRoot":"","sources":["../../src/staticGen/staticGen.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAiBhD,wBAAsB,SAAS,CAAC,SAAS,EAAE,SAAS,iBAiLnD"}
|
|
@@ -2,6 +2,7 @@ import { existsSync, promises as fsPromises } from 'fs';
|
|
|
2
2
|
import { join, dirname } from 'path';
|
|
3
3
|
import fsExtra from 'fs-extra';
|
|
4
4
|
import axios from 'axios';
|
|
5
|
+
//import type { SxyFrameworkConfigComplete } from '../FrameworkConfig.js'
|
|
5
6
|
import { staticSiteFolder, staticFolder, assetsFolder, publicFolder, bundleFolder, componentCssFolder } from "../settings.js";
|
|
6
7
|
import { getAppRoutes } from "./getAppRoutes.js";
|
|
7
8
|
import { cliError, cliWarn } from "../cliOutput.js";
|
|
@@ -23,7 +24,14 @@ export async function staticGen(framework) {
|
|
|
23
24
|
const projectDir = process.cwd();
|
|
24
25
|
//let appRoutes: RouteDefinition[] | Record<RouteKey, RouteDefinition> = await getAppRoutes(framework.compilationInfo, config)
|
|
25
26
|
const getRoutes = await getAppRoutes(framework.compilationInfo, config);
|
|
26
|
-
const appRoutes =
|
|
27
|
+
const appRoutes = getRoutes === null ? {
|
|
28
|
+
'/': {
|
|
29
|
+
content: 'Code for static rendering SPA TBC'
|
|
30
|
+
},
|
|
31
|
+
404: {
|
|
32
|
+
content: '404 TBC'
|
|
33
|
+
}
|
|
34
|
+
} : typeof getRoutes === 'function' ? getRoutes(null) : getRoutes;
|
|
27
35
|
const buildLocation = framework.compilationInfo.location;
|
|
28
36
|
const server = await framework.createProdServer();
|
|
29
37
|
const serverLocation = await server.start(null, true); // port, mute
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DomPointer } from '../DomPointer.js';
|
|
2
|
+
import { ContentNode, ContentNodeHtml, ContentNodeComponentAny } from '../ContentNode.js';
|
|
3
|
+
import { Instance } from '../Instance/Instance.js';
|
|
4
|
+
import { TungstenElement } from '../TungstenElement.js';
|
|
2
5
|
import { AnyComponent } from '../AnyComponent.js';
|
|
6
|
+
import { RenderedContentNodeComponent } from '../RenderedContentNode.js';
|
|
3
7
|
import { UpdateResult } from './UpdateResult.js';
|
|
4
8
|
export type TungstenHTMLElement = HTMLElement & {
|
|
5
9
|
__tungsten_click_handler: (this: HTMLElement, ev: MouseEvent) => any;
|
|
@@ -7,4 +11,12 @@ export type TungstenHTMLElement = HTMLElement & {
|
|
|
7
11
|
};
|
|
8
12
|
export declare function integrateElementUpdateVdom(element: AnyComponent, newContent: ContentNode): Promise<UpdateResult>;
|
|
9
13
|
export declare function processHtmlNode(node: ContentNodeHtml, parentNode: ContentNode): void;
|
|
14
|
+
type CreateTungstenComponentArgs = {
|
|
15
|
+
parent: TungstenElement;
|
|
16
|
+
instance: Instance;
|
|
17
|
+
node: ContentNodeComponentAny;
|
|
18
|
+
domPointer: DomPointer;
|
|
19
|
+
};
|
|
20
|
+
export declare function createTungstenComponent({ parent, instance, node, domPointer }: CreateTungstenComponentArgs): Promise<RenderedContentNodeComponent>;
|
|
21
|
+
export {};
|
|
10
22
|
//# sourceMappingURL=integrateUpdateVdom.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integrateUpdateVdom.d.ts","sourceRoot":"","sources":["../../src/update/integrateUpdateVdom.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"integrateUpdateVdom.d.ts","sourceRoot":"","sources":["../../src/update/integrateUpdateVdom.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EACH,WAAW,EAAwC,eAAe,EAElE,uBAAuB,EAG1B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAKlD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAKjD,OAAO,EAKyB,4BAA4B,EAI3D,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAWhD,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG;IAC5C,wBAAwB,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,KAAK,GAAG,CAAA;IACpE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACzB,CAAA;AAYD,wBAAsB,0BAA0B,CAC5C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,GAC/C,OAAO,CAAC,YAAY,CAAC,CA0GvB;AAskBD,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,QAkK7E;AA8TD,KAAK,2BAA2B,GAAG;IAC/B,MAAM,EAAE,eAAe,CAAA;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,uBAAuB,CAAC;IAE9B,UAAU,EAAE,UAAU,CAAA;CACzB,CAAA;AACD,wBAAsB,uBAAuB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,2BAA2B,GAC3G,OAAO,CAAC,4BAA4B,CAAC,CAU1C"}
|