@next-bricks/vb-experiment 1.3.15 → 1.3.17
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/bricks.json +3 -3
- package/dist/chunks/1469.1099f419.js +2 -0
- package/dist/chunks/1469.1099f419.js.map +1 -0
- package/dist/chunks/{246.e9cdf4f2.js → 246.3c1287e4.js} +2 -2
- package/dist/chunks/{246.e9cdf4f2.js.map → 246.3c1287e4.js.map} +1 -1
- package/dist/chunks/{7311.f04a9cac.js → 2857.da8e603e.js} +2 -2
- package/dist/chunks/2857.da8e603e.js.map +1 -0
- package/dist/chunks/{3171.3dd2f1c4.js → 3171.bee73fe6.js} +2 -2
- package/dist/chunks/{3171.3dd2f1c4.js.map → 3171.bee73fe6.js.map} +1 -1
- package/dist/chunks/{3735.61433691.js → 3735.6be3dc55.js} +4 -4
- package/dist/chunks/3735.6be3dc55.js.map +1 -0
- package/dist/chunks/{4765.9093ebcf.js → 4765.3a3c2ed3.js} +2 -2
- package/dist/chunks/{4765.9093ebcf.js.map → 4765.3a3c2ed3.js.map} +1 -1
- package/dist/chunks/4837.05a838ee.js +2 -0
- package/dist/chunks/{7218.9dc036f4.js.map → 4837.05a838ee.js.map} +1 -1
- package/dist/chunks/{5552.648b8e17.js → 5552.96d83691.js} +2 -2
- package/dist/chunks/{5552.648b8e17.js.map → 5552.96d83691.js.map} +1 -1
- package/dist/chunks/7131.ed1c7310.js +2 -0
- package/dist/chunks/7131.ed1c7310.js.map +1 -0
- package/dist/chunks/{7146.f95bb967.js → 7146.a8c80bcf.js} +2 -2
- package/dist/chunks/{7146.f95bb967.js.map → 7146.a8c80bcf.js.map} +1 -1
- package/dist/chunks/7218.b5820c83.js +2 -0
- package/dist/chunks/{4837.13dfbf22.js.map → 7218.b5820c83.js.map} +1 -1
- package/dist/chunks/948.1b677be1.js +3 -0
- package/dist/chunks/948.1b677be1.js.map +1 -0
- package/dist/chunks/app-playground.57f8b0b2.js +2 -0
- package/dist/chunks/app-playground.57f8b0b2.js.map +1 -0
- package/dist/chunks/app-preview.9fb1e8fc.js +2 -0
- package/dist/chunks/{app-preview.ca674689.js.map → app-preview.9fb1e8fc.js.map} +1 -1
- package/dist/chunks/{export-as-source-files.ce8ffd89.js → export-as-source-files.5accf195.js} +2 -2
- package/dist/chunks/{export-as-source-files.ce8ffd89.js.map → export-as-source-files.5accf195.js.map} +1 -1
- package/dist/chunks/{export-widgets.f2b4700e.js → export-widgets.1562a8ae.js} +2 -2
- package/dist/chunks/{export-widgets.f2b4700e.js.map → export-widgets.1562a8ae.js.map} +1 -1
- package/dist/chunks/main.0ecb65a5.js +2 -0
- package/dist/chunks/{main.3a36657c.js.map → main.0ecb65a5.js.map} +1 -1
- package/dist/chunks/tsx-playground.afd56710.js +2 -0
- package/dist/chunks/tsx-playground.afd56710.js.map +1 -0
- package/dist/index.ab859801.js +2 -0
- package/dist/{index.837b3856.js.map → index.ab859801.js.map} +1 -1
- package/dist/manifest.json +32 -19
- package/dist/types.json +27 -0
- package/dist-types/tsx-playground/index.d.ts +7 -0
- package/package.json +2 -2
- package/dist/chunks/1469.1261157a.js +0 -2
- package/dist/chunks/1469.1261157a.js.map +0 -1
- package/dist/chunks/3735.61433691.js.map +0 -1
- package/dist/chunks/4154.d161e0c4.js +0 -2
- package/dist/chunks/4154.d161e0c4.js.map +0 -1
- package/dist/chunks/4837.13dfbf22.js +0 -2
- package/dist/chunks/7218.9dc036f4.js +0 -2
- package/dist/chunks/7311.f04a9cac.js.map +0 -1
- package/dist/chunks/948.9e1553ab.js +0 -3
- package/dist/chunks/948.9e1553ab.js.map +0 -1
- package/dist/chunks/app-playground.76926a68.js +0 -2
- package/dist/chunks/app-playground.76926a68.js.map +0 -1
- package/dist/chunks/app-preview.ca674689.js +0 -2
- package/dist/chunks/main.3a36657c.js +0 -2
- package/dist/chunks/tsx-playground.3d6f89ab.js +0 -2
- package/dist/chunks/tsx-playground.3d6f89ab.js.map +0 -1
- package/dist/index.837b3856.js +0 -2
- /package/dist/chunks/{3735.61433691.js.LICENSE.txt → 3735.6be3dc55.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{948.9e1553ab.js.LICENSE.txt → 948.1b677be1.js.LICENSE.txt} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/246.e9cdf4f2.js","mappings":"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","sources":["webpack:///./src/data-providers/utils/handleImports.ts","webpack:///./src/data-providers/utils/plugins/pipeline-operator-minimal.ts","webpack:///./src/data-providers/utils/transformers/transformExpressionString.ts","webpack:///./src/data-providers/utils/transformers/transformJsonWithExpressions.ts","webpack:///./src/data-providers/utils/transformers/transformJsxAttributes.ts","webpack:///./src/data-providers/utils/transformers/transformRoute.ts","webpack:///./src/data-providers/utils/transformers/transformJsxChild.ts","webpack:///./src/data-providers/utils/transformers/transformBricks.ts","webpack:///./src/data-providers/utils/generators/generateJsx.ts","webpack:///./src/data-providers/utils/generators/generateOthers.ts","webpack:///./src/data-providers/utils/generators/generate.ts","webpack:///./src/data-providers/utils/generators/generateRoutes.ts","webpack:///./src/data-providers/utils/generators/generateBricks.ts","webpack:///./src/data-providers/utils/generators/generateTemplate.ts","webpack:///./src/data-providers/utils/generators/generateJsWithExpressions.ts","webpack:///../../node_modules/@babel/standalone/ sync","webpack:///./src/data-providers/utils/extract.ts","webpack:///./src/data-providers/utils/buildFileStructure.ts","webpack:///./src/data-providers/utils/plugins/storyboard-function.ts","webpack:///./src/data-providers/utils/constants.ts","webpack:///./src/data-providers/utils/plugins/smart-imports.ts"],"sourcesContent":["import { IMPORT_DEFAULT_PREFIX } from \"./constants.js\";\nimport { ImportInfo } from \"./interfaces.js\";\n\nexport function addImport(\n imports: ImportInfo,\n from: string,\n name: string\n): void {\n let imp = imports.get(from);\n if (!imp) {\n imp = new Set();\n imports.set(from, imp);\n }\n imp.add(name);\n}\n\nexport function generateImports(imports: ImportInfo): string[] {\n return [...imports]\n .sort((a, b) => Number(a[0].startsWith(\".\")) - Number(b[0].startsWith(\".\")))\n .map(([from, names]) => {\n const importNames = [...names];\n if (\n importNames.length === 1 &&\n importNames[0].startsWith(IMPORT_DEFAULT_PREFIX)\n ) {\n return `import ${importNames[0].substring(\n IMPORT_DEFAULT_PREFIX.length\n )} from \"${from}\";`;\n }\n return `import { ${importNames.join(\", \")} } from \"${from}\";`;\n });\n}\n\nexport function getVarNamesByImports(imports: ImportInfo): Set<string> {\n const names = new Set<string>();\n for (const importNames of imports.values()) {\n for (const name of importNames) {\n names.add(\n name.startsWith(IMPORT_DEFAULT_PREFIX)\n ? name.substring(IMPORT_DEFAULT_PREFIX.length)\n : /\\s+as\\s+/.test(name)\n ? name.split(/\\s+as\\s+/)[1]\n : name\n );\n }\n }\n return names;\n}\n","import * as t from \"@babel/types\";\nimport { registerPlugin, availablePlugins } from \"@babel/standalone\";\n\nconst TransformPipelineOperatorMinimal = \"transform-pipeline-operator-minimal\";\nregisterPlugin(TransformPipelineOperatorMinimal, () => ({\n name: TransformPipelineOperatorMinimal,\n inherits: availablePlugins[\"syntax-pipeline-operator\"],\n visitor: {\n BinaryExpression(path) {\n const { node } = path;\n const { operator, left, right } = node;\n if (operator !== \"|>\") return;\n const call = t.callExpression(right, [left as t.Expression]);\n path.replaceWith(call);\n },\n },\n}));\n\nexport default TransformPipelineOperatorMinimal;\n","import * as t from \"@babel/types\";\nimport { transform } from \"@babel/standalone\";\nimport type { ImportInfo } from \"../interfaces.js\";\nimport { addImport } from \"../handleImports.js\";\nimport TransformPipelineOperatorMinimal from \"../plugins/pipeline-operator-minimal.js\";\nimport SmartImports from \"../plugins/smart-imports.js\";\n\nexport function transformExpressionString(\n value: string,\n imports: ImportInfo,\n path: string[]\n) {\n if (/^\\s*<%[~=]?\\s/.test(value) && /\\s%>\\s*$/.test(value)) {\n try {\n // Turn `\"<% CTX.abc %>\"` into `CTX.abc`\n let flag = \"\";\n const source = value.replace(\n /^\\s*<%([~=])?\\s|\\s%>\\s*$/g,\n (m, p1: string) => {\n if (p1) {\n flag = p1;\n }\n return \"\";\n }\n );\n\n let bind = flag === \"=\";\n const recursive = flag === \"~\";\n\n const inferredImports = new Set<string>();\n const file = transform(`(${source})`, {\n ast: true,\n code: false,\n plugins: [\n [TransformPipelineOperatorMinimal, { proposal: \"minimal\" }],\n [SmartImports, { imports: inferredImports }],\n ],\n }).ast as t.File;\n let ast = (file.program.body[0] as t.ExpressionStatement).expression;\n\n let firstExpr: t.Expression;\n if (\n ast.type === \"SequenceExpression\" &&\n ((firstExpr = ast.expressions[0]),\n firstExpr.type === \"StringLiteral\") &&\n (firstExpr.value === \"track context\" ||\n firstExpr.value === \"track state\")\n ) {\n if (!bind) {\n bind = true;\n ast =\n ast.expressions.length > 2\n ? t.sequenceExpression(ast.expressions.slice(1))\n : ast.expressions[1];\n }\n }\n\n if (\n bind &&\n !inferredImports.has(\"STATE\") &&\n !inferredImports.has(\"CTX\")\n ) {\n bind = false;\n }\n\n for (const name of inferredImports) {\n if (name === \"FN\") {\n const targetPath = [\"resources\", \"functions\", \"index.js\"];\n let relative = 0;\n for (let i = 0; i < targetPath.length && i < path.length; i++) {\n relative = i;\n if (path[i] !== targetPath[i]) {\n break;\n }\n }\n addImport(\n imports,\n `${\n path.length === 1\n ? \".\"\n : new Array(path.length - 1 - relative).fill(\"..\").join(\"/\")\n }/${targetPath.slice(relative).join(\"/\")}`,\n \"default:FN\"\n );\n } else {\n addImport(imports, \"next-jsx/runtime\", name);\n }\n }\n\n if (recursive) {\n addImport(imports, \"next-jsx/runtime\", \"recursive\");\n ast = t.callExpression(t.identifier(\"recursive\"), [ast]);\n }\n\n if (bind) {\n addImport(imports, \"next-jsx/runtime\", \"bind\");\n ast = t.callExpression(t.identifier(\"bind\"), [ast]);\n }\n\n return ast;\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn(\"Parse expression failed:\", value, e);\n }\n }\n return null;\n}\n","import * as t from \"@babel/types\";\nimport { isObject } from \"@next-core/utils/general\";\nimport type { BrickNode, ImportInfo } from \"../interfaces.js\";\nimport { transformBrick, transformBricks } from \"./transformBricks.js\";\nimport { transformExpressionString } from \"./transformExpressionString.js\";\n\nexport function transformJsonWithExpressions(\n value: unknown,\n imports: ImportInfo,\n path: string[],\n transformUseBrick?: boolean,\n key?: string\n) {\n return (\n lowLevelTransformJsonWithExpressions(\n value,\n imports,\n path,\n transformUseBrick,\n key\n ) ?? t.nullLiteral()\n );\n}\n\nexport function lowLevelTransformJsonWithExpressions(\n value: unknown,\n imports: ImportInfo,\n path: string[],\n transformUseBrick?: boolean,\n key?: string\n): t.Expression | null {\n if (transformUseBrick && key === \"useBrick\") {\n if (Array.isArray(value)) {\n return transformBricks(value, imports, path);\n } else if (isObject(value)) {\n return transformBrick(value as unknown as BrickNode, imports, path);\n }\n }\n\n if (Array.isArray(value)) {\n return t.arrayExpression(\n value.map((v: unknown) =>\n lowLevelTransformJsonWithExpressions(\n v,\n imports,\n path,\n transformUseBrick\n )\n )\n );\n }\n\n if (typeof value === \"function\") {\n return null;\n }\n\n if (isObject(value)) {\n return t.objectExpression(\n Object.entries(value)\n .map(([k, v]) => {\n const vNode = lowLevelTransformJsonWithExpressions(\n v,\n imports,\n path,\n transformUseBrick,\n k\n );\n if (vNode !== null) {\n return t.objectProperty(t.stringLiteral(k), vNode);\n }\n return null;\n })\n .filter(Boolean) as t.ObjectProperty[]\n );\n }\n\n if (typeof value === \"string\") {\n const node = transformExpressionString(value, imports, path);\n return node ?? t.stringLiteral(value);\n }\n\n if (typeof value === \"number\") {\n return t.numericLiteral(value);\n }\n\n if (typeof value === \"boolean\") {\n return t.booleanLiteral(value);\n }\n\n if (value === null) {\n return t.nullLiteral();\n }\n\n return null;\n}\n","import * as t from \"@babel/types\";\nimport { isObject } from \"@next-core/utils/general\";\nimport type { BrickNode, ImportInfo } from \"../interfaces.js\";\nimport { PLACEHOLDER_PREFIX } from \"../extract.js\";\nimport { transformJsonWithExpressions } from \"./transformJsonWithExpressions.js\";\nimport { transformExpressionString } from \"./transformExpressionString.js\";\nimport { transformBrick, transformBricks } from \"./transformBricks.js\";\n\nexport function transformJsxAttributes(\n object: object,\n imports: ImportInfo,\n path: string[],\n sortKeys?: string[],\n namespace?: string,\n transformUseBrick?: boolean\n) {\n const normalEntries: [string, unknown][] = [];\n const restProperties: t.ObjectProperty[] = [];\n for (const [k, v] of Object.entries(object)) {\n if (v !== undefined) {\n if (/^[_$a-zA-Z][$\\w]*$/.test(k)) {\n normalEntries.push([k, v]);\n } else {\n restProperties.push(\n t.objectProperty(\n t.stringLiteral(namespace ? `${namespace}:${k}` : k),\n transformJsonWithExpressions(v, imports, path)\n )\n );\n }\n }\n }\n const attrs: (t.JSXAttribute | t.JSXSpreadAttribute)[] = (\n sortKeys ? normalEntries.sort(getSorterByKeys(sortKeys)) : normalEntries\n ).map(([k, v]) => {\n const value = transformJsxAttributeValue(\n v,\n imports,\n path,\n k,\n transformUseBrick\n );\n\n return t.jsxAttribute(\n namespace\n ? t.jsxNamespacedName(t.jsxIdentifier(namespace), t.jsxIdentifier(k))\n : t.jsxIdentifier(k),\n value\n );\n });\n if (restProperties.length > 0) {\n attrs.push(t.jsxSpreadAttribute(t.objectExpression(restProperties)));\n }\n return attrs;\n}\n\nfunction transformJsxAttributeValue(\n value: unknown,\n imports: ImportInfo,\n path: string[],\n key: string | undefined,\n transformUseBrick?: boolean\n) {\n if (typeof value === \"string\") {\n const expr = transformExpressionString(value, imports, path);\n if (expr) {\n return t.jsxExpressionContainer(expr);\n }\n\n const stringLiteral = t.stringLiteral(value);\n return value.includes(PLACEHOLDER_PREFIX) ||\n JSON.stringify(value).includes(\"\\\\\")\n ? t.jsxExpressionContainer(stringLiteral)\n : stringLiteral;\n }\n if (value === true) {\n return null;\n }\n if (transformUseBrick && key === \"useBrick\") {\n if (Array.isArray(value)) {\n return transformJsxValue(\n transformBricks(value as BrickNode[], imports, path)\n );\n } else if (isObject(value)) {\n return transformJsxValue(\n transformBrick(value as unknown as BrickNode, imports, path)\n );\n }\n }\n const expr = transformJsonWithExpressions(\n value,\n imports,\n path,\n transformUseBrick\n );\n return t.jsxExpressionContainer(expr);\n}\n\nfunction transformJsxValue(\n value: t.JSXElement | t.JSXFragment | t.StringLiteral\n) {\n if (value.type !== \"StringLiteral\") {\n return t.jsxExpressionContainer(value);\n }\n return value;\n}\n\nfunction getSorterByKeys(keys: string[]) {\n return function sorter(a: [string, unknown], b: [string, unknown]) {\n return keys.indexOf(b[0]) - keys.indexOf(a[0]);\n };\n}\n","import * as t from \"@babel/types\";\nimport type { ImportInfo, RouteNode } from \"../interfaces.js\";\nimport { addImport } from \"../handleImports.js\";\nimport { transformJsxAttributes } from \"./transformJsxAttributes.js\";\nimport { REVERSED_ROUTE_KEYS } from \"../constants.js\";\n\nexport function transformRoute(\n node: RouteNode,\n imports: ImportInfo,\n path: string[]\n): t.JSXElement {\n addImport(imports, \"next-jsx\", \"Route\");\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { children: _children, slot: _slot, _isRoute, ...restNode } = node;\n const children = _children ?? [];\n const slot = _slot === \"\" ? undefined : _slot;\n const selfClosing = children.length === 0;\n return t.jsxElement(\n t.jsxOpeningElement(\n t.jsxIdentifier(\"Route\"),\n transformJsxAttributes(\n { ...restNode, slot },\n imports,\n path,\n REVERSED_ROUTE_KEYS\n ),\n selfClosing\n ),\n selfClosing ? null : t.jsxClosingElement(t.jsxIdentifier(\"Route\")),\n children.map((child) => transformRoute(child, imports, path)),\n selfClosing\n );\n}\n","import * as t from \"@babel/types\";\n\nexport function transformJsxChild(child: t.JSXElement | t.StringLiteral) {\n if (child.type === \"StringLiteral\") {\n return t.jsxExpressionContainer(child);\n }\n return child;\n}\n","import * as t from \"@babel/types\";\nimport type { BrickNode, BrickNormalNode, ImportInfo } from \"../interfaces.js\";\nimport { addImport } from \"../handleImports.js\";\nimport { transformJsxAttributes } from \"./transformJsxAttributes.js\";\nimport { transformRoute } from \"./transformRoute.js\";\nimport { transformJsxChild } from \"./transformJsxChild.js\";\nimport { transformExpressionString } from \"./transformExpressionString.js\";\n\nexport function transformBricks(\n node: BrickNode[],\n imports: ImportInfo,\n path: string[]\n): t.StringLiteral | t.JSXElement | t.JSXFragment {\n const bricks = node.map((n) => transformBrick(n, imports, path));\n return bricks.length === 1\n ? bricks[0]\n : t.jsxFragment(\n t.jsxOpeningFragment(),\n t.jsxClosingFragment(),\n bricks.map(transformJsxChild)\n );\n}\n\nexport function transformBrick(\n node: BrickNode,\n imports: ImportInfo,\n path: string[]\n): t.StringLiteral | t.JSXElement {\n if (typeof node === \"string\") {\n return t.stringLiteral(node);\n }\n if (node.template) {\n return transformLegacyTemplate(node, imports, path);\n }\n const {\n brick,\n children,\n properties,\n events,\n lifeCycle,\n if: _if,\n portal,\n ref,\n slot: _slot,\n ...restNode\n } = node;\n if (typeof brick === \"string\") {\n let tagName: string;\n let isControlNode = true;\n switch (brick) {\n case \":forEach\":\n case \":if\":\n case \":switch\":\n tagName = `${brick[1].toUpperCase()}${brick.substring(2)}`;\n addImport(imports, \"next-jsx\", tagName);\n break;\n default:\n isControlNode = false;\n tagName = brick.replaceAll(\".\", \"_\");\n }\n let controlDataSource: unknown;\n if (isControlNode) {\n controlDataSource = restNode.dataSource;\n delete restNode.dataSource;\n }\n const slot = _slot === \"\" ? undefined : _slot;\n const props = properties ?? {};\n const {\n textContent,\n children: prop_children,\n events: prop_events,\n lifeCycle: prop_lifeCycle,\n if: prop_if,\n ref: prop_ref,\n id: prop_id,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n slot: prop_slot,\n ...restProps\n } = props;\n const hasTextContent = typeof textContent === \"string\";\n\n const selfClosing = children.length === 0 && !hasTextContent;\n\n if (children.length > 0 && hasTextContent) {\n // eslint-disable-next-line no-console\n console.warn(\n \"Invalid brick: mix slotted children and textContent:\",\n node\n );\n }\n\n const opening = t.jsxOpeningElement(\n t.jsxIdentifier(tagName),\n [\n ...transformJsxAttributes(\n {\n if: _if === true ? undefined : _if,\n slot,\n ref,\n id: prop_id,\n ...(isControlNode\n ? {\n value: controlDataSource,\n }\n : null),\n },\n imports,\n path\n ),\n ...transformJsxAttributes(\n restProps,\n imports,\n path,\n undefined,\n undefined,\n true\n ),\n ...transformJsxAttributes(\n {\n events,\n lifeCycle,\n portal,\n },\n imports,\n path\n ),\n ...transformJsxAttributes(\n {\n children: prop_children,\n events: prop_events,\n lifeCycle: prop_lifeCycle,\n if: prop_if,\n ref: prop_ref,\n },\n imports,\n path,\n undefined,\n \"prop\"\n ),\n ...transformJsxAttributes(restNode, imports, path, undefined, \"conf\"),\n ],\n selfClosing\n );\n\n const closing = selfClosing\n ? null\n : t.jsxClosingElement(t.jsxIdentifier(tagName));\n\n let childElements: (\n | t.JSXText\n | t.JSXExpressionContainer\n | t.JSXSpreadChild\n | t.JSXElement\n | t.JSXFragment\n )[];\n if (selfClosing) {\n childElements = [];\n } else if (children.length > 0) {\n childElements = children.map((child) =>\n typeof child !== \"string\" && child._isRoute\n ? transformRoute(child, imports, path)\n : transformJsxChild(transformBrick(child, imports, path))\n );\n } else {\n childElements = [transformJsxText(textContent as string, imports, path)];\n }\n\n return t.jsxElement(opening, closing, childElements, selfClosing);\n }\n\n throw new Error(`Unexpected brick node: ${JSON.stringify(node)}`);\n}\n\nfunction transformLegacyTemplate(\n node: BrickNormalNode,\n imports: ImportInfo,\n path: string[]\n) {\n addImport(imports, \"next-jsx\", \"LegacyTemplate\");\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { children, ...restNode } = node;\n\n return t.jsxElement(\n t.jsxOpeningElement(\n t.jsxIdentifier(\"LegacyTemplate\"),\n transformJsxAttributes(restNode, imports, path),\n true\n ),\n null,\n [],\n true\n );\n}\n\nfunction transformJsxText(text: string, imports: ImportInfo, path: string[]) {\n const expr = transformExpressionString(text, imports, path);\n if (expr) {\n return t.jsxExpressionContainer(expr);\n }\n if (/[{}<>]|&(?:[a-zA-Z0-9]+|#\\d+|#x[\\da-fA-F]+);/.test(text)) {\n return t.jsxExpressionContainer(t.stringLiteral(text));\n }\n return t.jsxText(text);\n}\n","import * as t from \"@babel/types\";\nimport { transformFromAst } from \"@babel/standalone\";\nimport type { ImportInfo } from \"../interfaces.js\";\nimport { PLACEHOLDER_PREFIX_REGEXP } from \"../extract.js\";\nimport { generateImports, getVarNamesByImports } from \"../handleImports.js\";\nimport { JS_RESERVED_WORDS } from \"../constants.js\";\n\nexport function generateJsx(\n expression: t.Expression,\n imports: ImportInfo\n): string {\n const exportDefault = t.exportDefaultDeclaration(expression);\n\n const { code } = transformFromAst(\n t.program([exportDefault], undefined, \"module\"),\n undefined,\n {\n generatorOpts: {\n jsescOption: {\n minimal: true,\n },\n },\n cloneInputAst: false,\n }\n ) as { code: string };\n\n const usedVarNames = getVarNamesByImports(imports);\n const allImports = generateImports(imports);\n\n const newCode = code!.replace(PLACEHOLDER_PREFIX_REGEXP, (m, p1: string) => {\n const path = p1.split(\"/\");\n const name = path[path.length - 1];\n const baseName = (\n name === \"context\" && path.length === 3 && path[0] === \"views\"\n ? `${path[path.length - 2]}_${name}`\n : name\n )\n .replaceAll(\"-\", \"_\")\n .replace(/^(\\d)/, \"_$1\");\n\n let counter = 2;\n let varName = baseName;\n while (usedVarNames.has(varName) || JS_RESERVED_WORDS.has(varName)) {\n varName = `${baseName}_${counter++}`;\n }\n usedVarNames.add(varName);\n\n allImports.push(`import ${varName} from \"./${p1}.js\";`);\n return varName;\n });\n\n return allImports.length > 0\n ? `${allImports.join(\"\\n\")}\\n\\n${newCode}`\n : code;\n}\n","import { PLACEHOLDER_PREFIX_REGEXP } from \"../extract.js\";\n\nexport function generateOthers(node: unknown) {\n let content = generatePlain(node);\n\n const usedVarNames = new Set<string>();\n const imports: string[] = [];\n\n content = content.replace(PLACEHOLDER_PREFIX_REGEXP, (m, p1: string) => {\n const path = p1.split(\"/\");\n const name = path[path.length - 1];\n const baseName = name.replaceAll(\"-\", \"_\").replace(/^(\\d)/, \"_$1\");\n\n let counter = 2;\n let varName = baseName;\n while (usedVarNames.has(varName)) {\n varName = `${baseName}_${counter++}`;\n }\n usedVarNames.add(varName);\n\n imports.push(`import ${varName} from \"./${p1}.js\";`);\n return varName;\n });\n\n if (imports.length > 0) {\n content = `${imports.join(\"\\n\")}\\n\\n${content}`;\n }\n\n return content;\n}\n\nexport function generatePlain(node: unknown) {\n return `export default ${JSON.stringify(node)};`;\n}\n","import { NodeType } from \"../extract.js\";\nimport { generateBricks } from \"./generateBricks.js\";\nimport { generateJsWithExpressions } from \"./generateJsWithExpressions.js\";\nimport { generateOthers, generatePlain } from \"./generateOthers.js\";\nimport { generateRoutes } from \"./generateRoutes.js\";\nimport { generateTemplate } from \"./generateTemplate.js\";\n\nexport function generate(\n node: any,\n nodeType: NodeType,\n path: string[]\n): string {\n switch (nodeType) {\n case \"routes\":\n return generateRoutes(node, path);\n case \"bricks\":\n return generateBricks(node, path);\n case \"template\":\n return generateTemplate(node, path);\n case \"context\":\n case \"menu\":\n return generateJsWithExpressions(node, path);\n case \"plain\": // Template proxy\n return generatePlain(node);\n case \"others\": // Templates index\n return generateOthers(node);\n default:\n throw new Error(`Unknown node type: ${nodeType}`);\n }\n}\n","import * as t from \"@babel/types\";\nimport type { ImportInfo } from \"../interfaces.js\";\nimport { transformRoute } from \"../transformers/transformRoute.js\";\nimport { generateJsx } from \"./generateJsx.js\";\n\nexport function generateRoutes(node: any[], path: string[]) {\n const imports: ImportInfo = new Map();\n const fragment = t.jsxFragment(\n t.jsxOpeningFragment(),\n t.jsxClosingFragment(),\n node.map((n) => transformRoute(n, imports, path))\n );\n\n return generateJsx(fragment, imports);\n}\n","import type { BrickNode, ImportInfo } from \"../interfaces.js\";\nimport {\n transformBrick,\n transformBricks,\n} from \"../transformers/transformBricks.js\";\nimport { generateJsx } from \"./generateJsx.js\";\n\nexport function generateBricks(node: BrickNode | BrickNode[], path: string[]) {\n const imports: ImportInfo = new Map();\n const expression = Array.isArray(node)\n ? transformBricks(node, imports, path)\n : transformBrick(node, imports, path);\n return generateJsx(expression, imports);\n}\n","import * as t from \"@babel/types\";\nimport type { ImportInfo } from \"../interfaces.js\";\nimport { generateJsx } from \"./generateJsx.js\";\nimport { addImport } from \"../handleImports.js\";\nimport { transformJsxAttributes } from \"../transformers/transformJsxAttributes.js\";\nimport { transformBrick } from \"../transformers/transformBricks.js\";\nimport { transformJsxChild } from \"../transformers/transformJsxChild.js\";\n\nexport function generateTemplate(node: any, path: string[]) {\n const imports: ImportInfo = new Map();\n addImport(imports, \"next-jsx\", \"Component\");\n\n const { bricks, name, state, proxy } = node;\n\n const tpl = t.jsxElement(\n t.jsxOpeningElement(\n t.jsxIdentifier(\"Component\"),\n transformJsxAttributes({ name, state, proxy }, imports, path)\n ),\n t.jsxClosingElement(t.jsxIdentifier(\"Component\")),\n (bricks ?? []).map((brick: any) =>\n transformJsxChild(transformBrick(brick, imports, path))\n )\n );\n\n return generateJsx(tpl, imports);\n}\n","import * as t from \"@babel/types\";\nimport { transformFromAst } from \"@babel/standalone\";\nimport type { ImportInfo } from \"../interfaces.js\";\nimport { generateImports } from \"../handleImports.js\";\nimport { transformJsonWithExpressions } from \"../transformers/transformJsonWithExpressions.js\";\n\nexport function generateJsWithExpressions(\n node: unknown,\n path: string[]\n): string {\n const imports: ImportInfo = new Map();\n const exportDefault = t.exportDefaultDeclaration(\n transformJsonWithExpressions(node, imports, path)\n );\n const ast = t.program([exportDefault], undefined, \"module\");\n const allImports = generateImports(imports);\n const content = transformFromAst(ast, undefined, {\n generatorOpts: {\n jsescOption: {\n minimal: true,\n },\n },\n cloneInputAst: false,\n }).code as string;\n if (allImports.length > 0) {\n return `${allImports.join(\"\\n\")}\\n\\n${content}`;\n }\n return content;\n}\n","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = () => ([]);\nwebpackEmptyContext.resolve = webpackEmptyContext;\nwebpackEmptyContext.id = 1897;\nmodule.exports = webpackEmptyContext;","import type {\n ContextConf,\n CustomTemplate,\n CustomTemplateProxy,\n RouteConf,\n} from \"@next-core/types\";\nimport { isObject } from \"@next-core/utils/general\";\nimport type {\n BrickNode,\n BrickNormalNode,\n BrickSourceNode,\n RouteNode,\n RouteNodeInBrick,\n} from \"./interfaces.js\";\n\nexport interface ExtractedItem {\n name: string;\n path: WalkPath;\n node: unknown;\n nodeType: NodeType;\n}\n\nexport type NodeType =\n | \"routes\"\n | \"template\"\n | \"bricks\"\n | \"context\"\n | \"menu\"\n | \"plain\"\n | \"others\";\n\nexport interface ExtractState {\n extracts: ExtractedItem[];\n namePool: Map<string, Set<string>>;\n}\n\ntype WalkPath = Readonly<Array<string>>;\n\nconst PROXY_KEYS = {\n properties: [\n \"ref\",\n \"refProperty\",\n \"extraOneWayRefs\",\n \"refTransform\",\n \"mergeType\",\n \"mergeMethod\",\n \"mergeArgs\",\n \"mergeProperty\",\n \"asVariable\",\n ],\n slots: [\"ref\", \"refSlot\", \"refPosition\"],\n events: [\"ref\", \"refEvent\"],\n methods: [\"ref\", \"refMethod\"],\n};\n\nexport const PLACEHOLDER_PREFIX = `--${Math.floor(\n Math.random() * 1e16\n).toString(36)}--:`;\n\nexport const PLACEHOLDER_PREFIX_REGEXP = new RegExp(\n `\"${PLACEHOLDER_PREFIX}((?:[-\\\\w]+/)*[-\\\\w]+)\"`,\n \"g\"\n);\n\nfunction getPlaceholder(folder: string, name: string): string {\n return `${PLACEHOLDER_PREFIX}${folder}${folder ? \"/\" : \"\"}${name}`;\n}\n\nexport function extractRoutes(\n routes: RouteConf[],\n path: WalkPath,\n state: ExtractState\n): RouteNode[] | undefined {\n return routes.map((route) => extractRoute(route, path, state));\n}\n\nexport function extractTemplates(\n templates: CustomTemplate[],\n path: WalkPath,\n state: ExtractState\n) {\n return templates.map((tpl) => extractTemplate(tpl, path, state));\n}\n\nfunction extractRoute(\n route: RouteConf,\n path: WalkPath,\n state: ExtractState\n): RouteNode {\n const viewsPath = [...path, \"views\"];\n const name = getAvailableName(\n \"route\",\n route.alias,\n viewsPath,\n state.namePool\n );\n addName(state.namePool, [...viewsPath, name], name);\n cleanRoute(route);\n\n let node: RouteNode;\n\n const childrenPath = [...viewsPath, name];\n\n if (route.type === \"redirect\") {\n node = route as RouteNode;\n } else if (route.type === \"routes\") {\n const { routes, ...restRoute } = route;\n node = {\n ...restRoute,\n children: extractRoutes(routes, path, state),\n } as RouteNode;\n } else {\n const { bricks, ...restRoute } = route;\n const view = extractBricks(bricks, childrenPath, state);\n\n state.extracts.push({\n name,\n path: childrenPath,\n node: view,\n nodeType: \"bricks\",\n });\n\n node = {\n ...restRoute,\n view: getPlaceholder(`views/${name}`, name),\n } as RouteNode;\n }\n\n const context = extractContext(\n \"context\",\n route.context,\n name,\n childrenPath,\n state\n );\n\n return {\n ...node,\n context,\n };\n}\n\nfunction extractContext(\n type: \"context\" | \"state\",\n context: ContextConf[] | undefined,\n routeName: string,\n path: WalkPath,\n state: ExtractState\n): string | undefined {\n if (Array.isArray(context) && context.length > 0) {\n for (const item of context) {\n cleanContext(item);\n }\n const name = getAvailableName(type, type, path, state.namePool);\n state.extracts.push({\n name,\n path,\n node: context,\n nodeType: \"context\",\n });\n\n return getPlaceholder(type === \"context\" ? `views/${routeName}` : \"\", name);\n }\n}\n\nfunction extractProxy(\n proxy: CustomTemplateProxy | undefined,\n path: WalkPath,\n state: ExtractState\n) {\n if (isObject(proxy) && Object.keys(proxy).length > 0) {\n const name = getAvailableName(\"proxy\", \"proxy\", path, state.namePool);\n cleanProxy(proxy);\n state.extracts.push({\n name,\n path,\n node: proxy,\n nodeType: \"plain\",\n });\n\n return getPlaceholder(\"\", name);\n }\n\n return proxy;\n}\n\nfunction getAvailableName(\n type: \"route\" | \"brick\" | \"context\" | \"state\" | \"proxy\",\n name: string | undefined,\n path: WalkPath,\n namePool: Map<string, Set<string>>\n): string {\n let lowerName = name?.toLowerCase();\n if (lowerName == \"index\") {\n lowerName = `${lowerName}_2`;\n }\n const names = getNames(namePool, path);\n\n const aliasIsOk =\n type !== \"route\" ||\n (typeof lowerName === \"string\" &&\n /^[-\\w]+$/.test(lowerName) &&\n lowerName !== \"index\");\n\n if (!aliasIsOk || names.has(lowerName as string)) {\n const prefix = aliasIsOk ? lowerName : type;\n let candidate: string;\n let count = 2;\n while (names.has((candidate = `${prefix}_${count}`))) {\n count++;\n }\n lowerName = candidate;\n }\n\n names.add(lowerName as string);\n return lowerName as string;\n}\n\nfunction addName(\n namePool: Map<string, Set<string>>,\n path: WalkPath,\n name: string\n) {\n const names = getNames(namePool, path);\n names.add(name);\n}\n\nfunction getNames(\n namePool: Map<string, Set<string>>,\n path: WalkPath\n): Set<string> {\n const pathString = path.join(\"/\");\n let names = namePool.get(pathString);\n if (!names) {\n namePool.set(pathString, (names = new Set()));\n }\n return names;\n}\n\nfunction extractBricks(\n bricks: BrickSourceNode[] | undefined,\n path: WalkPath,\n state: ExtractState\n) {\n if (Array.isArray(bricks)) {\n return bricks.map((brick) => extractBrick(brick, path, state));\n }\n return bricks;\n}\n\nfunction extractBrick(\n brick: BrickSourceNode,\n path: WalkPath,\n state: ExtractState\n): BrickNode {\n let name: string | undefined;\n if (\n typeof brick.alias === \"string\" &&\n /^<[-\\w]+>$/.test(brick.alias) &&\n brick.alias !== \"<index>\"\n ) {\n name = brick.alias.slice(1, -1);\n }\n cleanBrick(brick);\n\n if (name) {\n name = getAvailableName(\"brick\", name, path, state.namePool);\n addName(state.namePool, [...path, name], name);\n }\n\n const { slots, ...newBrick } = brick as BrickNormalNode &\n Pick<BrickSourceNode, \"slots\">;\n const children: (BrickNode | RouteNodeInBrick)[] = [];\n const childrenPath: WalkPath = [...path, ...(name ? [name] : [])];\n\n if (isObject(slots)) {\n for (const [slot, conf] of Object.entries(slots)) {\n if (conf.type === \"routes\") {\n const routes = extractRoutes(\n (conf.routes ?? []).map((route) => ({\n ...route,\n _isRoute: true,\n slot,\n })),\n path,\n state\n ) as RouteNodeInBrick[];\n children.push(...routes);\n } else {\n const bricks = extractBricks(\n (conf.bricks ?? []).map((brick) => ({\n ...brick,\n slot,\n })),\n childrenPath,\n state\n ) as BrickNode[];\n children.push(...bricks);\n }\n }\n }\n\n if (isObject(newBrick.properties) && !Array.isArray(newBrick.properties)) {\n newBrick.properties = extractProperties(\n newBrick.properties,\n childrenPath,\n state\n );\n }\n\n newBrick.children = children;\n\n if (name) {\n state.extracts.push({\n name,\n node: newBrick,\n path: [...path, name],\n nodeType: \"bricks\",\n });\n\n return getPlaceholder(name, name);\n }\n\n return newBrick;\n}\n\nfunction extractProperties(\n props: Record<string, unknown>,\n path: WalkPath,\n state: ExtractState\n): Record<string, unknown> {\n return Object.fromEntries(\n Object.entries(props).map(([k, v]) => [\n k,\n extractPropertyValue(v, k, path, state),\n ])\n );\n}\n\nfunction extractPropertyValue(\n value: unknown,\n key: string | number,\n path: WalkPath,\n state: ExtractState\n): unknown {\n if (key === \"useBrick\") {\n if (Array.isArray(value)) {\n return extractBricks(value as BrickSourceNode[], path, state);\n }\n if (isObject(value)) {\n return extractBrick(value as unknown as BrickSourceNode, path, state);\n }\n return value;\n }\n\n if (Array.isArray(value)) {\n return value.map((v, i) => extractPropertyValue(v, i, path, state));\n }\n\n if (isObject(value)) {\n return extractProperties(value, path, state);\n }\n\n return value;\n}\n\nfunction extractTemplate(\n tpl: CustomTemplate,\n path: WalkPath,\n state: ExtractState\n) {\n if (!tpl.name.startsWith(\"tpl-\")) {\n throw new Error(`Invalid template name: \"${tpl.name}\"`);\n }\n const name = tpl.name.substring(4);\n\n const childrenPath = [...path, name];\n\n const extractedBricks = extractBricks(tpl.bricks, childrenPath, state);\n const extractedState = extractContext(\n \"state\",\n tpl.state,\n name,\n childrenPath,\n state\n );\n const extractedProxy = extractProxy(tpl.proxy, childrenPath, state);\n\n state.extracts.push({\n name,\n path: childrenPath,\n node: {\n ...tpl,\n bricks: extractedBricks,\n state: extractedState,\n proxy: extractedProxy,\n },\n nodeType: \"template\",\n });\n\n return getPlaceholder(name, name);\n}\n\nfunction cleanRoute(\n route: RouteConf & {\n deviceOwner?: unknown;\n analyticsData?: unknown;\n menu?: RouteConf[\"menu\"] | string;\n }\n): void {\n delete route.alias;\n delete route.iid;\n delete route.deviceOwner;\n delete route.analyticsData;\n if (route.menu === \"\") {\n delete route.menu;\n }\n removeFalsyFields(route as unknown as Record<string, unknown>, [\n \"redirect\",\n \"exact\",\n ]);\n if (route.type === \"bricks\") {\n delete route.type;\n }\n}\n\nfunction cleanBrick(brick: BrickSourceNode): void {\n if (typeof brick.properties === \"string\") {\n const message = `The \\`properties\\` of brick cannot be a string, received: \"${brick.properties}\"`;\n // eslint-disable-next-line no-console\n console.error(`${message}. Check your brick:`, brick);\n throw new Error(message);\n }\n\n delete brick.alias;\n delete brick.iid;\n delete brick.deviceOwner;\n delete brick.uuid;\n if (brick.events && Object.keys(brick.events).length === 0) {\n delete brick.events;\n }\n if (brick.lifeCycle && Object.keys(brick.lifeCycle).length === 0) {\n delete brick.lifeCycle;\n }\n removeFalsyFields(brick as unknown as Record<string, unknown>, [\n \"bg\",\n \"portal\",\n ]);\n}\n\nfunction cleanContext(\n context: ContextConf & { path?: unknown; relatedId?: unknown; doc?: unknown }\n): void {\n delete context.path;\n delete context.relatedId;\n delete context.doc;\n}\n\nfunction cleanProxy(proxy: CustomTemplateProxy & { invalid?: unknown }) {\n for (const [key, value] of Object.entries(proxy)) {\n switch (key) {\n case \"properties\":\n case \"events\":\n case \"slots\":\n case \"methods\":\n if (isObject(value)) {\n for (const [j, v] of Object.entries(value)) {\n if (isObject(v)) {\n const keys = Object.keys(v);\n for (const k of keys) {\n if (!PROXY_KEYS[key].includes(k)) {\n delete v[k];\n }\n }\n if (keys.length === 0) {\n delete value[j];\n }\n }\n }\n }\n break;\n default:\n delete proxy[key as \"invalid\"];\n }\n }\n}\n\nfunction removeFalsyFields(\n node: Record<string, unknown>,\n fields: string[]\n): void {\n for (const field of fields) {\n if (!node[field]) {\n delete node[field];\n }\n }\n}\n","import type { ExtractedItem, NodeType } from \"./extract.js\";\n\nexport interface SourceFile {\n type: \"file\";\n name: string;\n node: unknown;\n nodeType: NodeType;\n}\n\nexport interface SourceFolder {\n type: \"folder\";\n name: string;\n items: SourceFileOrFolder[];\n}\n\nexport type SourceFileOrFolder = SourceFile | SourceFolder;\n\nexport function buildFileStructure(extracts: ExtractedItem[]) {\n const rootItems: SourceFileOrFolder[] = [];\n for (const item of extracts) {\n makeFileWithFolders(item, rootItems);\n }\n return rootItems;\n}\n\nfunction makeFileWithFolders(\n { name, path, node, nodeType }: ExtractedItem,\n rootItems: SourceFileOrFolder[]\n) {\n let items = rootItems;\n for (const dir of path) {\n const found = items.find(\n (item) => item.name === dir && item.type === \"folder\"\n ) as SourceFolder | undefined;\n if (found) {\n items = found.items;\n continue;\n }\n\n const folder: SourceFolder = {\n type: \"folder\",\n name: dir,\n items: [],\n };\n items.push(folder);\n items = folder.items;\n }\n\n const file: SourceFile = {\n type: \"file\",\n name,\n node,\n nodeType,\n };\n items.push(file);\n}\n","import * as t from \"@babel/types\";\nimport { registerPlugin } from \"@babel/standalone\";\n\nconst TransformStoryboardFunction = \"transform-storyboard-function\";\nregisterPlugin(TransformStoryboardFunction, () => ({\n name: TransformStoryboardFunction,\n visitor: {\n FunctionDeclaration(path) {\n if (path.parent.type === \"Program\") {\n path.replaceWith(t.exportDefaultDeclaration(path.node));\n }\n },\n TSDeclareFunction(path) {\n if (path.parent.type === \"Program\") {\n path.replaceWith(t.exportDefaultDeclaration(path.node));\n }\n },\n },\n}));\n\nexport default TransformStoryboardFunction;\n","export const REVERSED_ROUTE_KEYS: string[] = [\n \"context\",\n \"exact\",\n \"path\",\n \"slot\",\n];\n// export const REVERSED_BRICK_KEYS: string[] = [\"id\", \"ref\", \"slot\"];\n// export const REVERSED_TEMPLATE_KEYS: string[] = [\"proxy\", \"state\", \"name\"];\n\nexport const IMPORT_DEFAULT_PREFIX = \"default:\";\n\nexport const JS_RESERVED_WORDS = new Set([\n \"break\",\n \"case\",\n \"catch\",\n \"class\",\n \"continue\",\n \"const\",\n \"constructor\",\n \"debugger\",\n \"default\",\n \"delete\",\n \"do\",\n \"else\",\n \"export\",\n \"extends\",\n \"false\",\n \"finally\",\n \"for\",\n \"from\",\n \"function\",\n \"get\",\n \"if\",\n \"import\",\n \"in\",\n \"instanceof\",\n \"let\",\n \"new\",\n \"null\",\n \"return\",\n \"set\",\n \"static\",\n \"super\",\n \"switch\",\n \"symbol\",\n \"this\",\n \"throw\",\n \"true\",\n \"try\",\n \"typeof\",\n \"undefined\",\n \"var\",\n \"void\",\n \"while\",\n \"with\",\n \"yield\",\n \"async\",\n \"await\",\n \"of\",\n]);\n","import * as t from \"@babel/types\";\nimport { registerPlugin } from \"@babel/standalone\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\n\nconst EXPRESSION_GLOBALS = new Set([\n \"_\",\n \"location\",\n \"moment\",\n \"ANCHOR\",\n \"APP\",\n \"BASE_URL\",\n \"CTX\",\n \"DATA\",\n \"EVENT\",\n \"FLAGS\",\n \"FN\",\n \"HASH\",\n \"I18N_TEXT\",\n \"I18N\",\n \"IMG\",\n \"INSTALLED_APPS\",\n \"ITEM\",\n \"INDEX\",\n \"SIZE\",\n \"LOCAL_STORAGE\",\n \"MEDIA\",\n \"MISC\",\n \"PARAMS\",\n \"PATH_NAME\",\n \"PATH\",\n \"PERMISSIONS\",\n \"PIPES\",\n \"PROCESSORS\",\n \"QUERY_ARRAY\",\n \"QUERY\",\n \"SESSION_STORAGE\",\n \"STATE\",\n \"SYS\",\n \"THEME\",\n \"TAG_URL\",\n \"SAFE_TAG_URL\",\n]);\n\nconst SmartImports = \"smart-imports\";\nregisterPlugin(\n SmartImports,\n (_api: unknown, opts?: { imports: Set<string> }) => ({\n name: SmartImports,\n visitor: {\n Identifier(path) {\n const { node, scope, key, parent } = path;\n const { name } = node;\n if (\n scope.hasGlobal(name) &&\n name !== \"undefined\" &&\n !(\n key === \"key\" &&\n parent.type === \"ObjectProperty\" &&\n !parent.computed\n ) &&\n !(\n key === \"property\" &&\n parent.type === \"MemberExpression\" &&\n !parent.computed\n )\n ) {\n if (EXPRESSION_GLOBALS.has(name)) {\n opts?.imports.add(name);\n } else if (\n process.env.NODE_ENV === \"development\" &&\n !hasOwnProperty(window, name) &&\n !scope.hasBinding(name) &&\n !t.isTypeScript(parent)\n ) {\n // eslint-disable-next-line no-console\n console.error(\n \"Unhandled global variable in expression:\",\n name,\n path\n );\n }\n }\n },\n },\n })\n);\n\nexport default SmartImports;\n"],"names":["addImport","imports","from","name","imp","get","Set","set","add","generateImports","sort","a","b","Number","startsWith","map","_ref","names","importNames","length","IMPORT_DEFAULT_PREFIX","substring","join","TransformPipelineOperatorMinimal","registerPlugin","inherits","availablePlugins","visitor","BinaryExpression","path","node","operator","left","right","call","t","replaceWith","transformExpressionString","value","test","flag","source","replace","m","p1","bind","recursive","inferredImports","firstExpr","ast","transform","code","plugins","proposal","SmartImports","program","body","expression","type","expressions","slice","has","targetPath","relative","i","Array","fill","e","console","warn","transformJsonWithExpressions","transformUseBrick","key","_lowLevelTransformJso","lowLevelTransformJsonWithExpressions","isArray","transformBricks","isObject","transformBrick","v","Object","entries","k","vNode","filter","Boolean","transformJsxAttributes","object","sortKeys","namespace","normalEntries","restProperties","undefined","push","attrs","keys","indexOf","expr","stringLiteral","includes","PLACEHOLDER_PREFIX","JSON","stringify","transformJsxValue","transformJsxAttributeValue","transformRoute","children","_children","slot","_slot","_isRoute","restNode","selfClosing","REVERSED_ROUTE_KEYS","child","transformJsxChild","bricks","n","template","transformLegacyTemplate","brick","properties","events","lifeCycle","if","_if","portal","ref","tagName","controlDataSource","isControlNode","toUpperCase","replaceAll","dataSource","props","textContent","prop_children","prop_events","prop_lifeCycle","prop_if","prop_ref","id","prop_id","prop_slot","restProps","hasTextContent","opening","closing","childElements","transformJsxText","Error","text","generateJsx","exportDefault","transformFromAst","generatorOpts","jsescOption","minimal","cloneInputAst","usedVarNames","values","split","getVarNamesByImports","allImports","newCode","PLACEHOLDER_PREFIX_REGEXP","baseName","counter","varName","JS_RESERVED_WORDS","generatePlain","generate","nodeType","Map","generateRoutes","generateBricks","state","proxy","generateTemplate","content","generateJsWithExpressions","generateOthers","webpackEmptyContext","req","resolve","module","exports","PROXY_KEYS","slots","methods","Math","floor","random","toString","RegExp","getPlaceholder","folder","extractRoutes","routes","route","viewsPath","getAvailableName","alias","namePool","addName","iid","deviceOwner","analyticsData","menu","removeFalsyFields","cleanRoute","childrenPath","restRoute","view","extractBricks","extracts","context","extractContext","extractRoute","extractTemplates","templates","tpl","extractedBricks","extractedState","extractedProxy","j","cleanProxy","extractProxy","extractTemplate","routeName","item","cleanContext","lowerName","toLowerCase","getNames","aliasIsOk","prefix","candidate","count","pathString","extractBrick","message","error","uuid","cleanBrick","newBrick","conf","_conf$routes","_conf$bricks","extractProperties","fromEntries","extractPropertyValue","relatedId","doc","fields","field","buildFileStructure","rootItems","makeFileWithFolders","items","dir","found","find","file","TransformStoryboardFunction","FunctionDeclaration","parent","TSDeclareFunction","EXPRESSION_GLOBALS","_api","opts","Identifier","scope","hasGlobal","computed"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/246.3c1287e4.js","mappings":"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","sources":["webpack:///./src/data-providers/utils/handleImports.ts","webpack:///./src/data-providers/utils/plugins/pipeline-operator-minimal.ts","webpack:///./src/data-providers/utils/transformers/transformExpressionString.ts","webpack:///./src/data-providers/utils/transformers/transformJsonWithExpressions.ts","webpack:///./src/data-providers/utils/transformers/transformJsxAttributes.ts","webpack:///./src/data-providers/utils/transformers/transformRoute.ts","webpack:///./src/data-providers/utils/transformers/transformJsxChild.ts","webpack:///./src/data-providers/utils/transformers/transformBricks.ts","webpack:///./src/data-providers/utils/generators/generateJsx.ts","webpack:///./src/data-providers/utils/generators/generateOthers.ts","webpack:///./src/data-providers/utils/generators/generate.ts","webpack:///./src/data-providers/utils/generators/generateRoutes.ts","webpack:///./src/data-providers/utils/generators/generateBricks.ts","webpack:///./src/data-providers/utils/generators/generateTemplate.ts","webpack:///./src/data-providers/utils/generators/generateJsWithExpressions.ts","webpack:///../../node_modules/@babel/standalone/ sync","webpack:///./src/data-providers/utils/extract.ts","webpack:///./src/data-providers/utils/buildFileStructure.ts","webpack:///./src/data-providers/utils/plugins/storyboard-function.ts","webpack:///./src/data-providers/utils/constants.ts","webpack:///./src/data-providers/utils/plugins/smart-imports.ts"],"sourcesContent":["import { IMPORT_DEFAULT_PREFIX } from \"./constants.js\";\nimport { ImportInfo } from \"./interfaces.js\";\n\nexport function addImport(\n imports: ImportInfo,\n from: string,\n name: string\n): void {\n let imp = imports.get(from);\n if (!imp) {\n imp = new Set();\n imports.set(from, imp);\n }\n imp.add(name);\n}\n\nexport function generateImports(imports: ImportInfo): string[] {\n return [...imports]\n .sort((a, b) => Number(a[0].startsWith(\".\")) - Number(b[0].startsWith(\".\")))\n .map(([from, names]) => {\n const importNames = [...names];\n if (\n importNames.length === 1 &&\n importNames[0].startsWith(IMPORT_DEFAULT_PREFIX)\n ) {\n return `import ${importNames[0].substring(\n IMPORT_DEFAULT_PREFIX.length\n )} from \"${from}\";`;\n }\n return `import { ${importNames.join(\", \")} } from \"${from}\";`;\n });\n}\n\nexport function getVarNamesByImports(imports: ImportInfo): Set<string> {\n const names = new Set<string>();\n for (const importNames of imports.values()) {\n for (const name of importNames) {\n names.add(\n name.startsWith(IMPORT_DEFAULT_PREFIX)\n ? name.substring(IMPORT_DEFAULT_PREFIX.length)\n : /\\s+as\\s+/.test(name)\n ? name.split(/\\s+as\\s+/)[1]\n : name\n );\n }\n }\n return names;\n}\n","import * as t from \"@babel/types\";\nimport { registerPlugin, availablePlugins } from \"@babel/standalone\";\n\nconst TransformPipelineOperatorMinimal = \"transform-pipeline-operator-minimal\";\nregisterPlugin(TransformPipelineOperatorMinimal, () => ({\n name: TransformPipelineOperatorMinimal,\n inherits: availablePlugins[\"syntax-pipeline-operator\"],\n visitor: {\n BinaryExpression(path) {\n const { node } = path;\n const { operator, left, right } = node;\n if (operator !== \"|>\") return;\n const call = t.callExpression(right, [left as t.Expression]);\n path.replaceWith(call);\n },\n },\n}));\n\nexport default TransformPipelineOperatorMinimal;\n","import * as t from \"@babel/types\";\nimport { transform } from \"@babel/standalone\";\nimport type { ImportInfo } from \"../interfaces.js\";\nimport { addImport } from \"../handleImports.js\";\nimport TransformPipelineOperatorMinimal from \"../plugins/pipeline-operator-minimal.js\";\nimport SmartImports from \"../plugins/smart-imports.js\";\n\nexport function transformExpressionString(\n value: string,\n imports: ImportInfo,\n path: string[]\n) {\n if (/^\\s*<%[~=]?\\s/.test(value) && /\\s%>\\s*$/.test(value)) {\n try {\n // Turn `\"<% CTX.abc %>\"` into `CTX.abc`\n let flag = \"\";\n const source = value.replace(\n /^\\s*<%([~=])?\\s|\\s%>\\s*$/g,\n (m, p1: string) => {\n if (p1) {\n flag = p1;\n }\n return \"\";\n }\n );\n\n let bind = flag === \"=\";\n const recursive = flag === \"~\";\n\n const inferredImports = new Set<string>();\n const file = transform(`(${source})`, {\n ast: true,\n code: false,\n plugins: [\n [TransformPipelineOperatorMinimal, { proposal: \"minimal\" }],\n [SmartImports, { imports: inferredImports }],\n ],\n }).ast as t.File;\n let ast = (file.program.body[0] as t.ExpressionStatement).expression;\n\n let firstExpr: t.Expression;\n if (\n ast.type === \"SequenceExpression\" &&\n ((firstExpr = ast.expressions[0]),\n firstExpr.type === \"StringLiteral\") &&\n (firstExpr.value === \"track context\" ||\n firstExpr.value === \"track state\")\n ) {\n if (!bind) {\n bind = true;\n ast =\n ast.expressions.length > 2\n ? t.sequenceExpression(ast.expressions.slice(1))\n : ast.expressions[1];\n }\n }\n\n if (\n bind &&\n !inferredImports.has(\"STATE\") &&\n !inferredImports.has(\"CTX\")\n ) {\n bind = false;\n }\n\n for (const name of inferredImports) {\n if (name === \"FN\") {\n const targetPath = [\"resources\", \"functions\", \"index.js\"];\n let relative = 0;\n for (let i = 0; i < targetPath.length && i < path.length; i++) {\n relative = i;\n if (path[i] !== targetPath[i]) {\n break;\n }\n }\n addImport(\n imports,\n `${\n path.length === 1\n ? \".\"\n : new Array(path.length - 1 - relative).fill(\"..\").join(\"/\")\n }/${targetPath.slice(relative).join(\"/\")}`,\n \"default:FN\"\n );\n } else {\n addImport(imports, \"next-jsx/runtime\", name);\n }\n }\n\n if (recursive) {\n addImport(imports, \"next-jsx/runtime\", \"recursive\");\n ast = t.callExpression(t.identifier(\"recursive\"), [ast]);\n }\n\n if (bind) {\n addImport(imports, \"next-jsx/runtime\", \"bind\");\n ast = t.callExpression(t.identifier(\"bind\"), [ast]);\n }\n\n return ast;\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn(\"Parse expression failed:\", value, e);\n }\n }\n return null;\n}\n","import * as t from \"@babel/types\";\nimport { isObject } from \"@next-core/utils/general\";\nimport type { BrickNode, ImportInfo } from \"../interfaces.js\";\nimport { transformBrick, transformBricks } from \"./transformBricks.js\";\nimport { transformExpressionString } from \"./transformExpressionString.js\";\n\nexport function transformJsonWithExpressions(\n value: unknown,\n imports: ImportInfo,\n path: string[],\n transformUseBrick?: boolean,\n key?: string\n) {\n return (\n lowLevelTransformJsonWithExpressions(\n value,\n imports,\n path,\n transformUseBrick,\n key\n ) ?? t.nullLiteral()\n );\n}\n\nexport function lowLevelTransformJsonWithExpressions(\n value: unknown,\n imports: ImportInfo,\n path: string[],\n transformUseBrick?: boolean,\n key?: string\n): t.Expression | null {\n if (transformUseBrick && key === \"useBrick\") {\n if (Array.isArray(value)) {\n return transformBricks(value, imports, path);\n } else if (isObject(value)) {\n return transformBrick(value as unknown as BrickNode, imports, path);\n }\n }\n\n if (Array.isArray(value)) {\n return t.arrayExpression(\n value.map((v: unknown) =>\n lowLevelTransformJsonWithExpressions(\n v,\n imports,\n path,\n transformUseBrick\n )\n )\n );\n }\n\n if (typeof value === \"function\") {\n return null;\n }\n\n if (isObject(value)) {\n return t.objectExpression(\n Object.entries(value)\n .map(([k, v]) => {\n const vNode = lowLevelTransformJsonWithExpressions(\n v,\n imports,\n path,\n transformUseBrick,\n k\n );\n if (vNode !== null) {\n return t.objectProperty(t.stringLiteral(k), vNode);\n }\n return null;\n })\n .filter(Boolean) as t.ObjectProperty[]\n );\n }\n\n if (typeof value === \"string\") {\n const node = transformExpressionString(value, imports, path);\n return node ?? t.stringLiteral(value);\n }\n\n if (typeof value === \"number\") {\n return t.numericLiteral(value);\n }\n\n if (typeof value === \"boolean\") {\n return t.booleanLiteral(value);\n }\n\n if (value === null) {\n return t.nullLiteral();\n }\n\n return null;\n}\n","import * as t from \"@babel/types\";\nimport { isObject } from \"@next-core/utils/general\";\nimport type { BrickNode, ImportInfo } from \"../interfaces.js\";\nimport { PLACEHOLDER_PREFIX } from \"../extract.js\";\nimport { transformJsonWithExpressions } from \"./transformJsonWithExpressions.js\";\nimport { transformExpressionString } from \"./transformExpressionString.js\";\nimport { transformBrick, transformBricks } from \"./transformBricks.js\";\n\nexport function transformJsxAttributes(\n object: object,\n imports: ImportInfo,\n path: string[],\n sortKeys?: string[],\n namespace?: string,\n transformUseBrick?: boolean\n) {\n const normalEntries: [string, unknown][] = [];\n const restProperties: t.ObjectProperty[] = [];\n for (const [k, v] of Object.entries(object)) {\n if (v !== undefined) {\n if (/^[_$a-zA-Z][$\\w]*$/.test(k)) {\n normalEntries.push([k, v]);\n } else {\n restProperties.push(\n t.objectProperty(\n t.stringLiteral(namespace ? `${namespace}:${k}` : k),\n transformJsonWithExpressions(v, imports, path)\n )\n );\n }\n }\n }\n const attrs: (t.JSXAttribute | t.JSXSpreadAttribute)[] = (\n sortKeys ? normalEntries.sort(getSorterByKeys(sortKeys)) : normalEntries\n ).map(([k, v]) => {\n const value = transformJsxAttributeValue(\n v,\n imports,\n path,\n k,\n transformUseBrick\n );\n\n return t.jsxAttribute(\n namespace\n ? t.jsxNamespacedName(t.jsxIdentifier(namespace), t.jsxIdentifier(k))\n : t.jsxIdentifier(k),\n value\n );\n });\n if (restProperties.length > 0) {\n attrs.push(t.jsxSpreadAttribute(t.objectExpression(restProperties)));\n }\n return attrs;\n}\n\nfunction transformJsxAttributeValue(\n value: unknown,\n imports: ImportInfo,\n path: string[],\n key: string | undefined,\n transformUseBrick?: boolean\n) {\n if (typeof value === \"string\") {\n const expr = transformExpressionString(value, imports, path);\n if (expr) {\n return t.jsxExpressionContainer(expr);\n }\n\n const stringLiteral = t.stringLiteral(value);\n return value.includes(PLACEHOLDER_PREFIX) ||\n JSON.stringify(value).includes(\"\\\\\")\n ? t.jsxExpressionContainer(stringLiteral)\n : stringLiteral;\n }\n if (value === true) {\n return null;\n }\n if (transformUseBrick && key === \"useBrick\") {\n if (Array.isArray(value)) {\n return transformJsxValue(\n transformBricks(value as BrickNode[], imports, path)\n );\n } else if (isObject(value)) {\n return transformJsxValue(\n transformBrick(value as unknown as BrickNode, imports, path)\n );\n }\n }\n const expr = transformJsonWithExpressions(\n value,\n imports,\n path,\n transformUseBrick\n );\n return t.jsxExpressionContainer(expr);\n}\n\nfunction transformJsxValue(\n value: t.JSXElement | t.JSXFragment | t.StringLiteral\n) {\n if (value.type !== \"StringLiteral\") {\n return t.jsxExpressionContainer(value);\n }\n return value;\n}\n\nfunction getSorterByKeys(keys: string[]) {\n return function sorter(a: [string, unknown], b: [string, unknown]) {\n return keys.indexOf(b[0]) - keys.indexOf(a[0]);\n };\n}\n","import * as t from \"@babel/types\";\nimport type { ImportInfo, RouteNode } from \"../interfaces.js\";\nimport { addImport } from \"../handleImports.js\";\nimport { transformJsxAttributes } from \"./transformJsxAttributes.js\";\nimport { REVERSED_ROUTE_KEYS } from \"../constants.js\";\n\nexport function transformRoute(\n node: RouteNode,\n imports: ImportInfo,\n path: string[]\n): t.JSXElement {\n addImport(imports, \"next-jsx\", \"Route\");\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { children: _children, slot: _slot, _isRoute, ...restNode } = node;\n const children = _children ?? [];\n const slot = _slot === \"\" ? undefined : _slot;\n const selfClosing = children.length === 0;\n return t.jsxElement(\n t.jsxOpeningElement(\n t.jsxIdentifier(\"Route\"),\n transformJsxAttributes(\n { ...restNode, slot },\n imports,\n path,\n REVERSED_ROUTE_KEYS\n ),\n selfClosing\n ),\n selfClosing ? null : t.jsxClosingElement(t.jsxIdentifier(\"Route\")),\n children.map((child) => transformRoute(child, imports, path)),\n selfClosing\n );\n}\n","import * as t from \"@babel/types\";\n\nexport function transformJsxChild(child: t.JSXElement | t.StringLiteral) {\n if (child.type === \"StringLiteral\") {\n return t.jsxExpressionContainer(child);\n }\n return child;\n}\n","import * as t from \"@babel/types\";\nimport type { BrickNode, BrickNormalNode, ImportInfo } from \"../interfaces.js\";\nimport { addImport } from \"../handleImports.js\";\nimport { transformJsxAttributes } from \"./transformJsxAttributes.js\";\nimport { transformRoute } from \"./transformRoute.js\";\nimport { transformJsxChild } from \"./transformJsxChild.js\";\nimport { transformExpressionString } from \"./transformExpressionString.js\";\n\nexport function transformBricks(\n node: BrickNode[],\n imports: ImportInfo,\n path: string[]\n): t.StringLiteral | t.JSXElement | t.JSXFragment {\n const bricks = node.map((n) => transformBrick(n, imports, path));\n return bricks.length === 1\n ? bricks[0]\n : t.jsxFragment(\n t.jsxOpeningFragment(),\n t.jsxClosingFragment(),\n bricks.map(transformJsxChild)\n );\n}\n\nexport function transformBrick(\n node: BrickNode,\n imports: ImportInfo,\n path: string[]\n): t.StringLiteral | t.JSXElement {\n if (typeof node === \"string\") {\n return t.stringLiteral(node);\n }\n if (node.template) {\n return transformLegacyTemplate(node, imports, path);\n }\n const {\n brick,\n children,\n properties,\n events,\n lifeCycle,\n if: _if,\n portal,\n ref,\n slot: _slot,\n ...restNode\n } = node;\n if (typeof brick === \"string\") {\n let tagName: string;\n let isControlNode = true;\n switch (brick) {\n case \":forEach\":\n case \":if\":\n case \":switch\":\n tagName = `${brick[1].toUpperCase()}${brick.substring(2)}`;\n addImport(imports, \"next-jsx\", tagName);\n break;\n default:\n isControlNode = false;\n tagName = brick.replaceAll(\".\", \"_\");\n }\n let controlDataSource: unknown;\n if (isControlNode) {\n controlDataSource = restNode.dataSource;\n delete restNode.dataSource;\n }\n const slot = _slot === \"\" ? undefined : _slot;\n const props = properties ?? {};\n const {\n textContent,\n children: prop_children,\n events: prop_events,\n lifeCycle: prop_lifeCycle,\n if: prop_if,\n ref: prop_ref,\n id: prop_id,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n slot: prop_slot,\n ...restProps\n } = props;\n const hasTextContent = typeof textContent === \"string\";\n\n const selfClosing = children.length === 0 && !hasTextContent;\n\n if (children.length > 0 && hasTextContent) {\n // eslint-disable-next-line no-console\n console.warn(\n \"Invalid brick: mix slotted children and textContent:\",\n node\n );\n }\n\n const opening = t.jsxOpeningElement(\n t.jsxIdentifier(tagName),\n [\n ...transformJsxAttributes(\n {\n if: _if === true ? undefined : _if,\n slot,\n ref,\n id: prop_id,\n ...(isControlNode\n ? {\n value: controlDataSource,\n }\n : null),\n },\n imports,\n path\n ),\n ...transformJsxAttributes(\n restProps,\n imports,\n path,\n undefined,\n undefined,\n true\n ),\n ...transformJsxAttributes(\n {\n events,\n lifeCycle,\n portal,\n },\n imports,\n path\n ),\n ...transformJsxAttributes(\n {\n children: prop_children,\n events: prop_events,\n lifeCycle: prop_lifeCycle,\n if: prop_if,\n ref: prop_ref,\n },\n imports,\n path,\n undefined,\n \"prop\"\n ),\n ...transformJsxAttributes(restNode, imports, path, undefined, \"conf\"),\n ],\n selfClosing\n );\n\n const closing = selfClosing\n ? null\n : t.jsxClosingElement(t.jsxIdentifier(tagName));\n\n let childElements: (\n | t.JSXText\n | t.JSXExpressionContainer\n | t.JSXSpreadChild\n | t.JSXElement\n | t.JSXFragment\n )[];\n if (selfClosing) {\n childElements = [];\n } else if (children.length > 0) {\n childElements = children.map((child) =>\n typeof child !== \"string\" && child._isRoute\n ? transformRoute(child, imports, path)\n : transformJsxChild(transformBrick(child, imports, path))\n );\n } else {\n childElements = [transformJsxText(textContent as string, imports, path)];\n }\n\n return t.jsxElement(opening, closing, childElements, selfClosing);\n }\n\n throw new Error(`Unexpected brick node: ${JSON.stringify(node)}`);\n}\n\nfunction transformLegacyTemplate(\n node: BrickNormalNode,\n imports: ImportInfo,\n path: string[]\n) {\n addImport(imports, \"next-jsx\", \"LegacyTemplate\");\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { children, ...restNode } = node;\n\n return t.jsxElement(\n t.jsxOpeningElement(\n t.jsxIdentifier(\"LegacyTemplate\"),\n transformJsxAttributes(restNode, imports, path),\n true\n ),\n null,\n [],\n true\n );\n}\n\nfunction transformJsxText(text: string, imports: ImportInfo, path: string[]) {\n const expr = transformExpressionString(text, imports, path);\n if (expr) {\n return t.jsxExpressionContainer(expr);\n }\n if (/[{}<>]|&(?:[a-zA-Z0-9]+|#\\d+|#x[\\da-fA-F]+);/.test(text)) {\n return t.jsxExpressionContainer(t.stringLiteral(text));\n }\n return t.jsxText(text);\n}\n","import * as t from \"@babel/types\";\nimport { transformFromAst } from \"@babel/standalone\";\nimport type { ImportInfo } from \"../interfaces.js\";\nimport { PLACEHOLDER_PREFIX_REGEXP } from \"../extract.js\";\nimport { generateImports, getVarNamesByImports } from \"../handleImports.js\";\nimport { JS_RESERVED_WORDS } from \"../constants.js\";\n\nexport function generateJsx(\n expression: t.Expression,\n imports: ImportInfo\n): string {\n const exportDefault = t.exportDefaultDeclaration(expression);\n\n const { code } = transformFromAst(\n t.program([exportDefault], undefined, \"module\"),\n undefined,\n {\n generatorOpts: {\n jsescOption: {\n minimal: true,\n },\n },\n cloneInputAst: false,\n }\n ) as { code: string };\n\n const usedVarNames = getVarNamesByImports(imports);\n const allImports = generateImports(imports);\n\n const newCode = code!.replace(PLACEHOLDER_PREFIX_REGEXP, (m, p1: string) => {\n const path = p1.split(\"/\");\n const name = path[path.length - 1];\n const baseName = (\n name === \"context\" && path.length === 3 && path[0] === \"views\"\n ? `${path[path.length - 2]}_${name}`\n : name\n )\n .replaceAll(\"-\", \"_\")\n .replace(/^(\\d)/, \"_$1\");\n\n let counter = 2;\n let varName = baseName;\n while (usedVarNames.has(varName) || JS_RESERVED_WORDS.has(varName)) {\n varName = `${baseName}_${counter++}`;\n }\n usedVarNames.add(varName);\n\n allImports.push(`import ${varName} from \"./${p1}.js\";`);\n return varName;\n });\n\n return allImports.length > 0\n ? `${allImports.join(\"\\n\")}\\n\\n${newCode}`\n : code;\n}\n","import { PLACEHOLDER_PREFIX_REGEXP } from \"../extract.js\";\n\nexport function generateOthers(node: unknown) {\n let content = generatePlain(node);\n\n const usedVarNames = new Set<string>();\n const imports: string[] = [];\n\n content = content.replace(PLACEHOLDER_PREFIX_REGEXP, (m, p1: string) => {\n const path = p1.split(\"/\");\n const name = path[path.length - 1];\n const baseName = name.replaceAll(\"-\", \"_\").replace(/^(\\d)/, \"_$1\");\n\n let counter = 2;\n let varName = baseName;\n while (usedVarNames.has(varName)) {\n varName = `${baseName}_${counter++}`;\n }\n usedVarNames.add(varName);\n\n imports.push(`import ${varName} from \"./${p1}.js\";`);\n return varName;\n });\n\n if (imports.length > 0) {\n content = `${imports.join(\"\\n\")}\\n\\n${content}`;\n }\n\n return content;\n}\n\nexport function generatePlain(node: unknown) {\n return `export default ${JSON.stringify(node)};`;\n}\n","import { NodeType } from \"../extract.js\";\nimport { generateBricks } from \"./generateBricks.js\";\nimport { generateJsWithExpressions } from \"./generateJsWithExpressions.js\";\nimport { generateOthers, generatePlain } from \"./generateOthers.js\";\nimport { generateRoutes } from \"./generateRoutes.js\";\nimport { generateTemplate } from \"./generateTemplate.js\";\n\nexport function generate(\n node: any,\n nodeType: NodeType,\n path: string[]\n): string {\n switch (nodeType) {\n case \"routes\":\n return generateRoutes(node, path);\n case \"bricks\":\n return generateBricks(node, path);\n case \"template\":\n return generateTemplate(node, path);\n case \"context\":\n case \"menu\":\n return generateJsWithExpressions(node, path);\n case \"plain\": // Template proxy\n return generatePlain(node);\n case \"others\": // Templates index\n return generateOthers(node);\n default:\n throw new Error(`Unknown node type: ${nodeType}`);\n }\n}\n","import * as t from \"@babel/types\";\nimport type { ImportInfo } from \"../interfaces.js\";\nimport { transformRoute } from \"../transformers/transformRoute.js\";\nimport { generateJsx } from \"./generateJsx.js\";\n\nexport function generateRoutes(node: any[], path: string[]) {\n const imports: ImportInfo = new Map();\n const fragment = t.jsxFragment(\n t.jsxOpeningFragment(),\n t.jsxClosingFragment(),\n node.map((n) => transformRoute(n, imports, path))\n );\n\n return generateJsx(fragment, imports);\n}\n","import type { BrickNode, ImportInfo } from \"../interfaces.js\";\nimport {\n transformBrick,\n transformBricks,\n} from \"../transformers/transformBricks.js\";\nimport { generateJsx } from \"./generateJsx.js\";\n\nexport function generateBricks(node: BrickNode | BrickNode[], path: string[]) {\n const imports: ImportInfo = new Map();\n const expression = Array.isArray(node)\n ? transformBricks(node, imports, path)\n : transformBrick(node, imports, path);\n return generateJsx(expression, imports);\n}\n","import * as t from \"@babel/types\";\nimport type { ImportInfo } from \"../interfaces.js\";\nimport { generateJsx } from \"./generateJsx.js\";\nimport { addImport } from \"../handleImports.js\";\nimport { transformJsxAttributes } from \"../transformers/transformJsxAttributes.js\";\nimport { transformBrick } from \"../transformers/transformBricks.js\";\nimport { transformJsxChild } from \"../transformers/transformJsxChild.js\";\n\nexport function generateTemplate(node: any, path: string[]) {\n const imports: ImportInfo = new Map();\n addImport(imports, \"next-jsx\", \"Component\");\n\n const { bricks, name, state, proxy } = node;\n\n const tpl = t.jsxElement(\n t.jsxOpeningElement(\n t.jsxIdentifier(\"Component\"),\n transformJsxAttributes({ name, state, proxy }, imports, path)\n ),\n t.jsxClosingElement(t.jsxIdentifier(\"Component\")),\n (bricks ?? []).map((brick: any) =>\n transformJsxChild(transformBrick(brick, imports, path))\n )\n );\n\n return generateJsx(tpl, imports);\n}\n","import * as t from \"@babel/types\";\nimport { transformFromAst } from \"@babel/standalone\";\nimport type { ImportInfo } from \"../interfaces.js\";\nimport { generateImports } from \"../handleImports.js\";\nimport { transformJsonWithExpressions } from \"../transformers/transformJsonWithExpressions.js\";\n\nexport function generateJsWithExpressions(\n node: unknown,\n path: string[]\n): string {\n const imports: ImportInfo = new Map();\n const exportDefault = t.exportDefaultDeclaration(\n transformJsonWithExpressions(node, imports, path)\n );\n const ast = t.program([exportDefault], undefined, \"module\");\n const allImports = generateImports(imports);\n const content = transformFromAst(ast, undefined, {\n generatorOpts: {\n jsescOption: {\n minimal: true,\n },\n },\n cloneInputAst: false,\n }).code as string;\n if (allImports.length > 0) {\n return `${allImports.join(\"\\n\")}\\n\\n${content}`;\n }\n return content;\n}\n","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = () => ([]);\nwebpackEmptyContext.resolve = webpackEmptyContext;\nwebpackEmptyContext.id = 1897;\nmodule.exports = webpackEmptyContext;","import type {\n ContextConf,\n CustomTemplate,\n CustomTemplateProxy,\n RouteConf,\n} from \"@next-core/types\";\nimport { isObject } from \"@next-core/utils/general\";\nimport type {\n BrickNode,\n BrickNormalNode,\n BrickSourceNode,\n RouteNode,\n RouteNodeInBrick,\n} from \"./interfaces.js\";\n\nexport interface ExtractedItem {\n name: string;\n path: WalkPath;\n node: unknown;\n nodeType: NodeType;\n}\n\nexport type NodeType =\n | \"routes\"\n | \"template\"\n | \"bricks\"\n | \"context\"\n | \"menu\"\n | \"plain\"\n | \"others\";\n\nexport interface ExtractState {\n extracts: ExtractedItem[];\n namePool: Map<string, Set<string>>;\n}\n\ntype WalkPath = Readonly<Array<string>>;\n\nconst PROXY_KEYS = {\n properties: [\n \"ref\",\n \"refProperty\",\n \"extraOneWayRefs\",\n \"refTransform\",\n \"mergeType\",\n \"mergeMethod\",\n \"mergeArgs\",\n \"mergeProperty\",\n \"asVariable\",\n ],\n slots: [\"ref\", \"refSlot\", \"refPosition\"],\n events: [\"ref\", \"refEvent\"],\n methods: [\"ref\", \"refMethod\"],\n};\n\nexport const PLACEHOLDER_PREFIX = `--${Math.floor(\n Math.random() * 1e16\n).toString(36)}--:`;\n\nexport const PLACEHOLDER_PREFIX_REGEXP = new RegExp(\n `\"${PLACEHOLDER_PREFIX}((?:[-\\\\w]+/)*[-\\\\w]+)\"`,\n \"g\"\n);\n\nfunction getPlaceholder(folder: string, name: string): string {\n return `${PLACEHOLDER_PREFIX}${folder}${folder ? \"/\" : \"\"}${name}`;\n}\n\nexport function extractRoutes(\n routes: RouteConf[],\n path: WalkPath,\n state: ExtractState\n): RouteNode[] | undefined {\n return routes.map((route) => extractRoute(route, path, state));\n}\n\nexport function extractTemplates(\n templates: CustomTemplate[],\n path: WalkPath,\n state: ExtractState\n) {\n return templates.map((tpl) => extractTemplate(tpl, path, state));\n}\n\nfunction extractRoute(\n route: RouteConf,\n path: WalkPath,\n state: ExtractState\n): RouteNode {\n const viewsPath = [...path, \"views\"];\n const name = getAvailableName(\n \"route\",\n route.alias,\n viewsPath,\n state.namePool\n );\n addName(state.namePool, [...viewsPath, name], name);\n cleanRoute(route);\n\n let node: RouteNode;\n\n const childrenPath = [...viewsPath, name];\n\n if (route.type === \"redirect\") {\n node = route as RouteNode;\n } else if (route.type === \"routes\") {\n const { routes, ...restRoute } = route;\n node = {\n ...restRoute,\n children: extractRoutes(routes, path, state),\n } as RouteNode;\n } else {\n const { bricks, ...restRoute } = route;\n const view = extractBricks(bricks, childrenPath, state);\n\n state.extracts.push({\n name,\n path: childrenPath,\n node: view,\n nodeType: \"bricks\",\n });\n\n node = {\n ...restRoute,\n view: getPlaceholder(`views/${name}`, name),\n } as RouteNode;\n }\n\n const context = extractContext(\n \"context\",\n route.context,\n name,\n childrenPath,\n state\n );\n\n return {\n ...node,\n context,\n };\n}\n\nfunction extractContext(\n type: \"context\" | \"state\",\n context: ContextConf[] | undefined,\n routeName: string,\n path: WalkPath,\n state: ExtractState\n): string | undefined {\n if (Array.isArray(context) && context.length > 0) {\n for (const item of context) {\n cleanContext(item);\n }\n const name = getAvailableName(type, type, path, state.namePool);\n state.extracts.push({\n name,\n path,\n node: context,\n nodeType: \"context\",\n });\n\n return getPlaceholder(type === \"context\" ? `views/${routeName}` : \"\", name);\n }\n}\n\nfunction extractProxy(\n proxy: CustomTemplateProxy | undefined,\n path: WalkPath,\n state: ExtractState\n) {\n if (isObject(proxy) && Object.keys(proxy).length > 0) {\n const name = getAvailableName(\"proxy\", \"proxy\", path, state.namePool);\n cleanProxy(proxy);\n state.extracts.push({\n name,\n path,\n node: proxy,\n nodeType: \"plain\",\n });\n\n return getPlaceholder(\"\", name);\n }\n\n return proxy;\n}\n\nfunction getAvailableName(\n type: \"route\" | \"brick\" | \"context\" | \"state\" | \"proxy\",\n name: string | undefined,\n path: WalkPath,\n namePool: Map<string, Set<string>>\n): string {\n let lowerName = name?.toLowerCase();\n if (lowerName == \"index\") {\n lowerName = `${lowerName}_2`;\n }\n const names = getNames(namePool, path);\n\n const aliasIsOk =\n type !== \"route\" ||\n (typeof lowerName === \"string\" &&\n /^[-\\w]+$/.test(lowerName) &&\n lowerName !== \"index\");\n\n if (!aliasIsOk || names.has(lowerName as string)) {\n const prefix = aliasIsOk ? lowerName : type;\n let candidate: string;\n let count = 2;\n while (names.has((candidate = `${prefix}_${count}`))) {\n count++;\n }\n lowerName = candidate;\n }\n\n names.add(lowerName as string);\n return lowerName as string;\n}\n\nfunction addName(\n namePool: Map<string, Set<string>>,\n path: WalkPath,\n name: string\n) {\n const names = getNames(namePool, path);\n names.add(name);\n}\n\nfunction getNames(\n namePool: Map<string, Set<string>>,\n path: WalkPath\n): Set<string> {\n const pathString = path.join(\"/\");\n let names = namePool.get(pathString);\n if (!names) {\n namePool.set(pathString, (names = new Set()));\n }\n return names;\n}\n\nfunction extractBricks(\n bricks: BrickSourceNode[] | undefined,\n path: WalkPath,\n state: ExtractState\n) {\n if (Array.isArray(bricks)) {\n return bricks.map((brick) => extractBrick(brick, path, state));\n }\n return bricks;\n}\n\nfunction extractBrick(\n brick: BrickSourceNode,\n path: WalkPath,\n state: ExtractState\n): BrickNode {\n let name: string | undefined;\n if (\n typeof brick.alias === \"string\" &&\n /^<[-\\w]+>$/.test(brick.alias) &&\n brick.alias !== \"<index>\"\n ) {\n name = brick.alias.slice(1, -1);\n }\n cleanBrick(brick);\n\n if (name) {\n name = getAvailableName(\"brick\", name, path, state.namePool);\n addName(state.namePool, [...path, name], name);\n }\n\n const { slots, ...newBrick } = brick as BrickNormalNode &\n Pick<BrickSourceNode, \"slots\">;\n const children: (BrickNode | RouteNodeInBrick)[] = [];\n const childrenPath: WalkPath = [...path, ...(name ? [name] : [])];\n\n if (isObject(slots)) {\n for (const [slot, conf] of Object.entries(slots)) {\n if (conf.type === \"routes\") {\n const routes = extractRoutes(\n (conf.routes ?? []).map((route) => ({\n ...route,\n _isRoute: true,\n slot,\n })),\n path,\n state\n ) as RouteNodeInBrick[];\n children.push(...routes);\n } else {\n const bricks = extractBricks(\n (conf.bricks ?? []).map((brick) => ({\n ...brick,\n slot,\n })),\n childrenPath,\n state\n ) as BrickNode[];\n children.push(...bricks);\n }\n }\n }\n\n if (isObject(newBrick.properties) && !Array.isArray(newBrick.properties)) {\n newBrick.properties = extractProperties(\n newBrick.properties,\n childrenPath,\n state\n );\n }\n\n newBrick.children = children;\n\n if (name) {\n state.extracts.push({\n name,\n node: newBrick,\n path: [...path, name],\n nodeType: \"bricks\",\n });\n\n return getPlaceholder(name, name);\n }\n\n return newBrick;\n}\n\nfunction extractProperties(\n props: Record<string, unknown>,\n path: WalkPath,\n state: ExtractState\n): Record<string, unknown> {\n return Object.fromEntries(\n Object.entries(props).map(([k, v]) => [\n k,\n extractPropertyValue(v, k, path, state),\n ])\n );\n}\n\nfunction extractPropertyValue(\n value: unknown,\n key: string | number,\n path: WalkPath,\n state: ExtractState\n): unknown {\n if (key === \"useBrick\") {\n if (Array.isArray(value)) {\n return extractBricks(value as BrickSourceNode[], path, state);\n }\n if (isObject(value)) {\n return extractBrick(value as unknown as BrickSourceNode, path, state);\n }\n return value;\n }\n\n if (Array.isArray(value)) {\n return value.map((v, i) => extractPropertyValue(v, i, path, state));\n }\n\n if (isObject(value)) {\n return extractProperties(value, path, state);\n }\n\n return value;\n}\n\nfunction extractTemplate(\n tpl: CustomTemplate,\n path: WalkPath,\n state: ExtractState\n) {\n if (!tpl.name.startsWith(\"tpl-\")) {\n throw new Error(`Invalid template name: \"${tpl.name}\"`);\n }\n const name = tpl.name.substring(4);\n\n const childrenPath = [...path, name];\n\n const extractedBricks = extractBricks(tpl.bricks, childrenPath, state);\n const extractedState = extractContext(\n \"state\",\n tpl.state,\n name,\n childrenPath,\n state\n );\n const extractedProxy = extractProxy(tpl.proxy, childrenPath, state);\n\n state.extracts.push({\n name,\n path: childrenPath,\n node: {\n ...tpl,\n bricks: extractedBricks,\n state: extractedState,\n proxy: extractedProxy,\n },\n nodeType: \"template\",\n });\n\n return getPlaceholder(name, name);\n}\n\nfunction cleanRoute(\n route: RouteConf & {\n deviceOwner?: unknown;\n analyticsData?: unknown;\n menu?: RouteConf[\"menu\"] | string;\n }\n): void {\n delete route.alias;\n delete route.iid;\n delete route.deviceOwner;\n delete route.analyticsData;\n if (route.menu === \"\") {\n delete route.menu;\n }\n removeFalsyFields(route as unknown as Record<string, unknown>, [\n \"redirect\",\n \"exact\",\n ]);\n if (route.type === \"bricks\") {\n delete route.type;\n }\n}\n\nfunction cleanBrick(brick: BrickSourceNode): void {\n if (typeof brick.properties === \"string\") {\n const message = `The \\`properties\\` of brick cannot be a string, received: \"${brick.properties}\"`;\n // eslint-disable-next-line no-console\n console.error(`${message}. Check your brick:`, brick);\n throw new Error(message);\n }\n\n delete brick.alias;\n delete brick.iid;\n delete brick.deviceOwner;\n delete brick.uuid;\n if (brick.events && Object.keys(brick.events).length === 0) {\n delete brick.events;\n }\n if (brick.lifeCycle && Object.keys(brick.lifeCycle).length === 0) {\n delete brick.lifeCycle;\n }\n removeFalsyFields(brick as unknown as Record<string, unknown>, [\n \"bg\",\n \"portal\",\n ]);\n}\n\nfunction cleanContext(\n context: ContextConf & { path?: unknown; relatedId?: unknown; doc?: unknown }\n): void {\n delete context.path;\n delete context.relatedId;\n delete context.doc;\n}\n\nfunction cleanProxy(proxy: CustomTemplateProxy & { invalid?: unknown }) {\n for (const [key, value] of Object.entries(proxy)) {\n switch (key) {\n case \"properties\":\n case \"events\":\n case \"slots\":\n case \"methods\":\n if (isObject(value)) {\n for (const [j, v] of Object.entries(value)) {\n if (isObject(v)) {\n const keys = Object.keys(v);\n for (const k of keys) {\n if (!PROXY_KEYS[key].includes(k)) {\n delete v[k];\n }\n }\n if (keys.length === 0) {\n delete value[j];\n }\n }\n }\n }\n break;\n default:\n delete proxy[key as \"invalid\"];\n }\n }\n}\n\nfunction removeFalsyFields(\n node: Record<string, unknown>,\n fields: string[]\n): void {\n for (const field of fields) {\n if (!node[field]) {\n delete node[field];\n }\n }\n}\n","import type { ExtractedItem, NodeType } from \"./extract.js\";\n\nexport interface SourceFile {\n type: \"file\";\n name: string;\n node: unknown;\n nodeType: NodeType;\n}\n\nexport interface SourceFolder {\n type: \"folder\";\n name: string;\n items: SourceFileOrFolder[];\n}\n\nexport type SourceFileOrFolder = SourceFile | SourceFolder;\n\nexport function buildFileStructure(extracts: ExtractedItem[]) {\n const rootItems: SourceFileOrFolder[] = [];\n for (const item of extracts) {\n makeFileWithFolders(item, rootItems);\n }\n return rootItems;\n}\n\nfunction makeFileWithFolders(\n { name, path, node, nodeType }: ExtractedItem,\n rootItems: SourceFileOrFolder[]\n) {\n let items = rootItems;\n for (const dir of path) {\n const found = items.find(\n (item) => item.name === dir && item.type === \"folder\"\n ) as SourceFolder | undefined;\n if (found) {\n items = found.items;\n continue;\n }\n\n const folder: SourceFolder = {\n type: \"folder\",\n name: dir,\n items: [],\n };\n items.push(folder);\n items = folder.items;\n }\n\n const file: SourceFile = {\n type: \"file\",\n name,\n node,\n nodeType,\n };\n items.push(file);\n}\n","import * as t from \"@babel/types\";\nimport { registerPlugin } from \"@babel/standalone\";\n\nconst TransformStoryboardFunction = \"transform-storyboard-function\";\nregisterPlugin(TransformStoryboardFunction, () => ({\n name: TransformStoryboardFunction,\n visitor: {\n FunctionDeclaration(path) {\n if (path.parent.type === \"Program\") {\n path.replaceWith(t.exportDefaultDeclaration(path.node));\n }\n },\n TSDeclareFunction(path) {\n if (path.parent.type === \"Program\") {\n path.replaceWith(t.exportDefaultDeclaration(path.node));\n }\n },\n },\n}));\n\nexport default TransformStoryboardFunction;\n","export const REVERSED_ROUTE_KEYS: string[] = [\n \"context\",\n \"exact\",\n \"path\",\n \"slot\",\n];\n// export const REVERSED_BRICK_KEYS: string[] = [\"id\", \"ref\", \"slot\"];\n// export const REVERSED_TEMPLATE_KEYS: string[] = [\"proxy\", \"state\", \"name\"];\n\nexport const IMPORT_DEFAULT_PREFIX = \"default:\";\n\nexport const JS_RESERVED_WORDS = new Set([\n \"break\",\n \"case\",\n \"catch\",\n \"class\",\n \"continue\",\n \"const\",\n \"constructor\",\n \"debugger\",\n \"default\",\n \"delete\",\n \"do\",\n \"else\",\n \"export\",\n \"extends\",\n \"false\",\n \"finally\",\n \"for\",\n \"from\",\n \"function\",\n \"get\",\n \"if\",\n \"import\",\n \"in\",\n \"instanceof\",\n \"let\",\n \"new\",\n \"null\",\n \"return\",\n \"set\",\n \"static\",\n \"super\",\n \"switch\",\n \"symbol\",\n \"this\",\n \"throw\",\n \"true\",\n \"try\",\n \"typeof\",\n \"undefined\",\n \"var\",\n \"void\",\n \"while\",\n \"with\",\n \"yield\",\n \"async\",\n \"await\",\n \"of\",\n]);\n","import * as t from \"@babel/types\";\nimport { registerPlugin } from \"@babel/standalone\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\n\nconst EXPRESSION_GLOBALS = new Set([\n \"_\",\n \"location\",\n \"moment\",\n \"ANCHOR\",\n \"APP\",\n \"BASE_URL\",\n \"CTX\",\n \"DATA\",\n \"EVENT\",\n \"FLAGS\",\n \"FN\",\n \"HASH\",\n \"I18N_TEXT\",\n \"I18N\",\n \"IMG\",\n \"INSTALLED_APPS\",\n \"ITEM\",\n \"INDEX\",\n \"SIZE\",\n \"LOCAL_STORAGE\",\n \"MEDIA\",\n \"MISC\",\n \"PARAMS\",\n \"PATH_NAME\",\n \"PATH\",\n \"PERMISSIONS\",\n \"PIPES\",\n \"PROCESSORS\",\n \"QUERY_ARRAY\",\n \"QUERY\",\n \"SESSION_STORAGE\",\n \"STATE\",\n \"SYS\",\n \"THEME\",\n \"TAG_URL\",\n \"SAFE_TAG_URL\",\n]);\n\nconst SmartImports = \"smart-imports\";\nregisterPlugin(\n SmartImports,\n (_api: unknown, opts?: { imports: Set<string> }) => ({\n name: SmartImports,\n visitor: {\n Identifier(path) {\n const { node, scope, key, parent } = path;\n const { name } = node;\n if (\n scope.hasGlobal(name) &&\n name !== \"undefined\" &&\n !(\n key === \"key\" &&\n parent.type === \"ObjectProperty\" &&\n !parent.computed\n ) &&\n !(\n key === \"property\" &&\n parent.type === \"MemberExpression\" &&\n !parent.computed\n )\n ) {\n if (EXPRESSION_GLOBALS.has(name)) {\n opts?.imports.add(name);\n } else if (\n process.env.NODE_ENV === \"development\" &&\n !hasOwnProperty(window, name) &&\n !scope.hasBinding(name) &&\n !t.isTypeScript(parent)\n ) {\n // eslint-disable-next-line no-console\n console.error(\n \"Unhandled global variable in expression:\",\n name,\n path\n );\n }\n }\n },\n },\n })\n);\n\nexport default SmartImports;\n"],"names":["addImport","imports","from","name","imp","get","Set","set","add","generateImports","sort","a","b","Number","startsWith","map","_ref","names","importNames","length","IMPORT_DEFAULT_PREFIX","substring","join","TransformPipelineOperatorMinimal","registerPlugin","inherits","availablePlugins","visitor","BinaryExpression","path","node","operator","left","right","call","t","replaceWith","transformExpressionString","value","test","flag","source","replace","m","p1","bind","recursive","inferredImports","firstExpr","ast","transform","code","plugins","proposal","SmartImports","program","body","expression","type","expressions","slice","has","targetPath","relative","i","Array","fill","e","console","warn","transformJsonWithExpressions","transformUseBrick","key","_lowLevelTransformJso","lowLevelTransformJsonWithExpressions","isArray","transformBricks","isObject","transformBrick","v","Object","entries","k","vNode","filter","Boolean","transformJsxAttributes","object","sortKeys","namespace","normalEntries","restProperties","undefined","push","attrs","keys","indexOf","expr","stringLiteral","includes","PLACEHOLDER_PREFIX","JSON","stringify","transformJsxValue","transformJsxAttributeValue","transformRoute","children","_children","slot","_slot","_isRoute","restNode","selfClosing","REVERSED_ROUTE_KEYS","child","transformJsxChild","bricks","n","template","transformLegacyTemplate","brick","properties","events","lifeCycle","if","_if","portal","ref","tagName","controlDataSource","isControlNode","toUpperCase","replaceAll","dataSource","props","textContent","prop_children","prop_events","prop_lifeCycle","prop_if","prop_ref","id","prop_id","prop_slot","restProps","hasTextContent","opening","closing","childElements","transformJsxText","Error","text","generateJsx","exportDefault","transformFromAst","generatorOpts","jsescOption","minimal","cloneInputAst","usedVarNames","values","split","getVarNamesByImports","allImports","newCode","PLACEHOLDER_PREFIX_REGEXP","baseName","counter","varName","JS_RESERVED_WORDS","generatePlain","generate","nodeType","Map","generateRoutes","generateBricks","state","proxy","generateTemplate","content","generateJsWithExpressions","generateOthers","webpackEmptyContext","req","resolve","module","exports","PROXY_KEYS","slots","methods","Math","floor","random","toString","RegExp","getPlaceholder","folder","extractRoutes","routes","route","viewsPath","getAvailableName","alias","namePool","addName","iid","deviceOwner","analyticsData","menu","removeFalsyFields","cleanRoute","childrenPath","restRoute","view","extractBricks","extracts","context","extractContext","extractRoute","extractTemplates","templates","tpl","extractedBricks","extractedState","extractedProxy","j","cleanProxy","extractProxy","extractTemplate","routeName","item","cleanContext","lowerName","toLowerCase","getNames","aliasIsOk","prefix","candidate","count","pathString","extractBrick","message","error","uuid","cleanBrick","newBrick","conf","_conf$routes","_conf$bricks","extractProperties","fromEntries","extractPropertyValue","relatedId","doc","fields","field","buildFileStructure","rootItems","makeFileWithFolders","items","dir","found","find","file","TransformStoryboardFunction","FunctionDeclaration","parent","TSDeclareFunction","EXPRESSION_GLOBALS","_api","opts","Identifier","scope","hasGlobal","computed"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_next_bricks_vb_experiment=globalThis.webpackChunk_next_bricks_vb_experiment||[]).push([[7311],{1746:(e,n,r)=>{r.d(n,{f:()=>s});var t=r(7695);let a,o;function s(){return a||(a=(async()=>{const e=(0,t.LV)((o||(o=new Worker(new URL(r.p+r.u(4154),r.b))),o));return await new e})()),a}},2518:e=>{e.exports='/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-empty-object-type */\n\nexport interface ViewProps {\n title: string;\n}\n\nexport interface BaseProps {\n key?: string | number;\n}\n\nexport interface TableProps<T extends object> extends BaseProps {\n dataSource: {\n list: T[];\n page?: number;\n pageSize?: number;\n total?: number;\n };\n columns: TableColumn<T>[];\n rowKey: string;\n rowSelection?: boolean;\n sort?: TableSort | null;\n pagination?: boolean;\n onSelect?: (event: CustomEvent<T[]>) => void;\n onPaginate?: (event: CustomEvent<{ page: number; pageSize: number }>) => void;\n onSort?: (event: CustomEvent<TableSort | null>) => void;\n}\n\nexport interface ListProps extends BaseProps {\n dataSource: object[];\n fields?: {\n title?: string;\n icon?: string;\n url?: string;\n };\n variant?: "default" | "navigation" | "ranking";\n}\n\nexport interface DescriptionsProps<T extends object> extends BaseProps {\n title?: string;\n dataSource?: T;\n list: Array<\n | {\n label: string;\n text: string;\n }\n | {\n label: string;\n /** 数据字段,多级字段使用点号分隔 */\n field: string;\n }\n | {\n label: string;\n render: (record: T) => any;\n }\n >;\n}\n\nexport interface ButtonProps extends BaseProps {\n type?: "default" | "primary";\n icon?: IconProps;\n onClick?: (e: Event) => void;\n}\n\nexport interface SearchProps extends BaseProps {\n placeholder?: string;\n onSearch?: (e: CustomEvent<string>) => void;\n}\n\nexport interface FormProps<T extends object> extends BaseProps {\n values?: T;\n onValidateSuccess?: (e: CustomEvent<T>) => void;\n ref?: {\n readonly current: FormRef;\n };\n}\n\nexport interface FormRef {\n validate: () => void;\n reset: () => void;\n}\n\nexport interface InputProps extends FormItemProps {\n placeholder?: string;\n}\n\nexport interface NumberInputProps extends InputProps {\n min?: number;\n max?: number;\n}\n\nexport interface TextareaProps extends InputProps {}\n\nexport interface SelectProps extends InputProps {\n options: (FormItemOptions | string)[];\n onChange?: (e: CustomEvent<string | number | boolean | null>) => void;\n}\n\nexport interface RadioProps extends SelectProps {}\n\nexport interface CheckboxProps extends SelectProps {}\n\nexport interface SwitchProps extends FormItemProps {}\n\nexport interface DatePickerProps extends FormItemProps {}\n\nexport interface TimePickerProps extends FormItemProps {}\n\nexport interface DashboardProps extends BaseProps {\n dataSource: Array<object>;\n groupField?: string;\n widgets: Array<DashboardWidget>;\n}\n\nexport interface ModalProps extends BaseProps {\n title: string;\n confirmText?: string;\n cancelText?: string;\n onConfirm?: () => void;\n ref?: {\n readonly current: ModalRef;\n };\n}\n\nexport interface ModalRef {\n open: () => void;\n close: () => void;\n}\n\nexport interface CardProps extends BaseProps {\n title?: string;\n}\n\nexport interface TagProps extends BaseProps {\n color?: string;\n outline?: boolean;\n}\n\nexport interface LinkProps extends BaseProps {\n /** 站外链接 */\n href?: string;\n\n /** 站内链接 */\n url?: string;\n\n target?: "_blank" | "_self";\n}\n\nexport interface AvatarProps extends BaseProps {\n size?: "large" | "medium" | "small";\n name?: string;\n src?: string;\n}\n\nexport interface AvatarGroupProps extends BaseProps {\n size?: "large" | "medium" | "small";\n}\n\nexport interface CodeBlockProps extends BaseProps {\n source: string;\n language: string;\n}\n\nexport interface PlaintextProps extends BaseProps {\n /** Related advisory information */\n title?: string;\n}\n\nexport interface DashboardWidget {\n widget: "chart";\n type: "line" | "area";\n title?: string;\n metric: {\n id: string;\n unit: string;\n };\n precision?: number;\n}\n\nexport interface FormItemProps extends BaseProps {\n name: string;\n label?: string;\n required?: boolean;\n disabled?: boolean;\n}\n\nexport interface FormItemOptions {\n label: string;\n value: string;\n}\n\nexport interface IconProps {\n lib: "fa";\n prefix: "fas" | "far";\n icon: string;\n}\n\nexport interface TableColumn<T extends object> {\n key: string;\n /** 数据索引,多级索引使用数组 */\n dataIndex: string | string[];\n title: string;\n sortable?: boolean;\n render?: (value: any, record: T) => any;\n}\n\nexport interface TableSort {\n columnKey: string | number;\n order: "ascend" | "descend";\n}\n\ndeclare const View: (props: ViewProps) => any;\ndeclare const Table: <T extends object>(props: TableProps<T>) => any;\ndeclare const List: (props: ListProps) => any;\ndeclare const Descriptions: <T extends object>(\n props: DescriptionsProps<T>\n) => any;\ndeclare const Button: (props: ButtonProps) => any;\ndeclare const Toolbar: (props: BaseProps) => any;\ndeclare const Search: (props: SearchProps) => any;\ndeclare const Form: <T extends object>(props: FormProps<T>) => any;\ndeclare const Input: (props: InputProps) => any;\ndeclare const NumberInput: (props: NumberInputProps) => any;\ndeclare const Textarea: (props: TextareaProps) => any;\ndeclare const Select: (props: SelectProps) => any;\ndeclare const Radio: (props: RadioProps) => any;\ndeclare const Checkbox: (props: CheckboxProps) => any;\ndeclare const Switch: (props: SwitchProps) => any;\ndeclare const DatePicker: (props: DatePickerProps) => any;\ndeclare const TimePicker: (props: TimePickerProps) => any;\ndeclare const Dashboard: (props: DashboardProps) => any;\ndeclare const Modal: (props: ModalProps) => any;\ndeclare const Card: (props: CardProps) => any;\ndeclare const Output: (props: BaseProps) => any;\ndeclare const Tag: (props: TagProps) => any;\ndeclare const Link: (props: LinkProps) => any;\ndeclare const Avatar: (props: AvatarProps) => any;\ndeclare const AvatarGroup: (props: AvatarGroupProps) => any;\ndeclare const CodeBlock: (props: CodeBlockProps) => any;\ndeclare const Plaintext: (props: PlaintextProps) => any;\ndeclare const Fragment: (props: { key?: string | number }) => any;\n'},2826:(e,n,r)=>{r.d(n,{UQ:()=>s,dN:()=>l,zk:()=>i}),r(8135);var t=r(3303);const a=/^<%=?\s/,o=/\s%>$/;function s(e){if("string"!=typeof e)return!1;const n=e.trim();return a.test(n)&&o.test(n)}function i(e){return!e.reference||"imported"===e.reference.type&&e.reference.importSource===t.F}function l(e,n){return i(e)&&(e.reference?e.reference.name===n:e.name===n)}},3303:(e,n,r)=>{r.d(n,{F:()=>t});const t="next-tsx"},3808:(e,n,r)=>{r.d(n,{$:()=>o,v:()=>s});let t=0;const a=new Map;function o(e,n){return`${function(e){return a.has(e)||a.set(e,"isolated-tpl-"+t++),a.get(e)}(n)}${i(e)}`}function s(e){return`tpl-${i(e)}`}function i(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase()}},5146:e=>{e.exports='/** 返回一个有状态的值和一个更新它的函数。 */\nexport const useState: <T>(\n initialValue?: T\n) => [value: T, setter: (value: T) => void];\n\n/** 异步获取资源,返回获取到的数据、以及一个重新拉取数据的函数 */\nexport const useResource: <T = any>(\n fetcher: () => Promise<T>,\n options?: {\n // 不启用则直接返回 fallback\n enabled?: boolean;\n fallback?: unknown;\n }\n) => [data: T, refetch: () => void];\n\n/** 返回一个可变的 ref 对象,其 `.current` 属性初始化为传入的参数 (`initialValue`) */\nexport const useRef: <T>(initialValue: T) => {\n current: T;\n};\n\n/** 获取当前的 URL search 参数 */\nexport const useQuery: () => {\n readonly [key: string]: string | undefined;\n};\n\n/** 更新当前的 URL search 参数 */\nexport const pushQuery: (\n newQuery: Record<string, string | null>,\n options?: {\n clear?: boolean; // 是否清除已有参数,默认 false\n notify?: boolean; // 是否通知路由变化,默认 true\n }\n) => void;\n\n/** 调用指定的 Provider 接口 */\nexport const callApi: <T extends keyof ContractMap>(\n api: T,\n params: Parameters<ContractMap[T]>[0]\n) => Promise<ReturnType<ContractMap[T]>>;\n\n/** 调用指定的 HTTP 接口 */\nexport const callHttp: <T = any>(url: string, init?: RequestInit) => Promise<T>;\n\n/** 调用指定的工具函数 */\nexport const callTool: <T = any, P = any>(\n conversationId: string,\n stepId: string,\n params: P\n) => Promise<T>;\n\n/** 提示用户操作结果 */\nexport const showMessage: (options: {\n type: "success" | "error";\n content: string;\n}) => void;\n'},6806:(e,n,r)=>{r.d(n,{A:()=>h});var t=r(2826),a=r(9936);function o(e){const{name:n,http:r,api:t,params:o,tool:s,transform:i,rejectTransform:l,config:p,scope:c}=e,d=p&&Object.prototype.hasOwnProperty.call(p,"enabled");return{name:n,resolve:{...r?{useProvider:"basic.http-request",args:[t,o]}:s?{useProvider:"ai-portal.call-tool",args:[s,o]}:{useProvider:`${t}:*`,params:o,..."easyops.api.data_exchange.olap@Query"===t&&(0,a.isObject)(o)?{params:{...o,translate:["#showKey"],limit:void 0,limitBy:void 0,order:void 0,displayName:!0}}:null},...i?{transform:{value:i}}:null,...l?{onReject:{transform:{value:l}}}:null,...d?{if:p.enabled}:null},track:!0,...d?{value:p.fallback}:null,..."template"===c?{expose:!1}:null}}function s(e,n){if(!e)return;const r=(Array.isArray(e)?e:[e]).map((e=>function(e,n){var r;switch(null==e?void 0:e.action){case"update_variable":return{action:"template"===e.payload.scope?"state.update":"context.replace",args:[e.payload.name,e.payload.value]};case"refresh_data_source":return{action:"template"===e.payload.scope?"state.refresh":"context.refresh",args:[e.payload.name]};case"call_api":{var t;const{api:r,http:a,tool:o,params:i}=e.payload,l=null!==(t=e.callback)&&void 0!==t&&t.success?s(e.callback.success,n):void 0;return{...a?{useProvider:"basic.http-request",args:[r,i]}:o?{useProvider:"ai-portal.call-tool",args:[o,i]}:{useProvider:`${r}:*`,params:i},callback:{...l&&{success:l},error:{action:"handleHttpError"}}}}case"call_ref":return{..."template"===e.payload.scope?{targetRef:e.payload.ref}:{target:`[data-root-id="${n.rootId}"] [data-ref="${e.payload.ref}"]`},method:e.payload.method,args:e.payload.args};case"update_query":return{action:"replace"===e.payload.method?"history.replaceQuery":"history.pushQuery",args:e.payload.args};case"show_message":return{action:`message.${e.payload.type}`,args:[e.payload.content]};case"dispatch_event":return{action:"tpl.dispatchEvent",args:[e.payload.type,{detail:e.payload.detail}]};case"conditional":return{if:e.payload.test,then:null!==(r=s(e.payload.consequent,n))&&void 0!==r?r:[],else:s(e.payload.alternate,n)}}}(e,n))).filter(Boolean);return r.length>0?r:void 0}var i=r(6890);const l=/^<%=?\s/,p=/\s%>$/;function c(e){if("string"!=typeof e)return{isString:!1};let n;const r=e.trim();var t;return t=r,l.test(t)&&p.test(t)?n=r.replace(l,"").replace(p,"").trim():(console.warn("Invalid expression:",JSON.stringify(e)),n="null"),{isString:!0,embedded:e,expression:n,usedContexts:(0,i.strictCollectMemberUsage)(e,"CTX")}}var d=r(1321);function u(e,n){return null!=n&&n.size?Array.isArray(e)?e.map((e=>u(e,n))):"object"==typeof e&&null!==e?Object.fromEntries(Object.entries(e).map((e=>{let[r,t]=e;return[r,u(t,n)]}))):"string"==typeof e&&(0,t.UQ)(e)?function(e,n){if(null==n||!n.size)return e;if([...n.keys()].some((n=>e.includes(n)))){const r=[];let t;try{t=(0,d.preevaluate)(e,{withParent:!0,hooks:{beforeVisitGlobal(e,t){if(n.has(e.name)){var a;const n=null===(a=t[t.length-1])||void 0===a?void 0:a.node;let o;n&&"Property"===n.type&&!n.computed&&n.shorthand&&(o=!0),r.push({id:e,shorthand:o})}}}})}catch(e){console.error("Parse expression failed:",e)}if(r.length>0&&t){const{prefix:e,source:a,suffix:o}=t,s=[];let i=0;for(let e=0;e<r.length;e++){const{id:t,shorthand:o}=r[e],{name:l,start:p,end:c}=t;s.push(a.substring(i,p),`${o?`${l}: `:""}${n.get(l)}`),i=c}return s.push(a.substring(i)),`${e}${s.join("")}${o}`}}return e}(e,n):e:e}const m=["cellData","rowData"],f=["#336EF4","#45CAFF","#41CDCF","#8146F3","#F8A075","#94E65E","#57689C","#C285EF","#FAC60B","#E4551F","#8984FF","#2540FF","#08BF33","#F7811C","#AC7CFF","#1BA5DC","#E89716","#76A6F5","#4F69FF"];function g(e,n){const r=e.slice(1),t=parseInt(r,16);return`rgba(${t>>16&255}, ${t>>8&255}, ${255&t}, ${n})`}var b=r(3808);async function x(e,n,r,a,o){var i;let l=null;if((0,t.zk)(e))switch(e.reference?e.reference.name:e.name){case"List":l=await function(e){let{properties:n}=e;const r=n,{dataSource:t,fields:a,variant:o}=r,s=c(t);return{brick:"eo-list",properties:{variant:o,dataSource:s.isString?s.embedded:t,fields:a,themeVariant:"elevo"}}}(e);break;case"Table":l=await async function(e,n,r,t,a){var o;const{properties:s}=e,{dataSource:i,size:l,columns:p,rowKey:d,pagination:f,...g}=s,b=c(i),h=new Map,y=Array.isArray(p)?await Promise.all(p.map((async e=>{let{render:o,...s}=e;if(o){const e=new Map;for(let n=0;n<o.params.length&&n<m.length;n++)e.set(o.params[n],`DATA.${m[n]}`);const i=(await Promise.all(o.children.map((e=>x(e,n,r,t,a))))).flatMap((n=>u(n,e)));return{...s,useBrick:i.map((e=>e.brick.startsWith(":")?{brick:"div",children:[e]}:e))}}return"string"==typeof s.dataIndex&&h.has(s.dataIndex)?{...s,useChildren:`[${s.dataIndex}]`}:s}))):p;return{brick:"eo-next-table",properties:{dataSource:b.isString?b.embedded:i,...g,rowKey:null!=d?d:Array.isArray(p)?null===(o=p[0])||void 0===o?void 0:o.key:void 0,columns:y,themeVariant:"elevo",scrollConfig:{x:"max-content"},...t.expanded?{bordered:!0,pagination:f,size:"large"}:{size:"middle",pagination:!1}},children:h.size>0?Array.from(h.values()):[]}}(e,n,r,a,o);break;case"Descriptions":l=await async function(e,n,r,t,a){let{properties:o}=e;const{dataSource:s,title:i,list:l,columns:p,...d}=o,m=c(s),f=new Map,g=Array.isArray(l)?await Promise.all(l.map((async e=>{let{render:o,...s}=e;if(o){const e=new Map;o.params.length>0&&e.set(o.params[0],"DATA");const i=(await Promise.all(o.children.map((e=>x(e,n,r,t,a))))).flatMap((n=>u(n,e)));return{label:s.label,useBrick:i}}return(s.field?f.get(s.field):void 0)?{label:s.label,useChildren:`[${s.field}]`}:s}))):l;return{brick:"eo-descriptions",properties:{...d,dataSource:m.isString?m.embedded:s,list:g,...null==p?{column:t.expanded?3:1,templateColumns:"repeat(auto-fill,minmax(360px,1fr))"}:{column:p},themeVariant:"elevo"},children:f.size>0?Array.from(f.values()):[]}}(e,n,r,a,o);break;case"Card":l=await function(e){const{properties:n}=e,{title:r,textContent:t}=n;return{brick:"eo-card",properties:{themeVariant:"elevo",cardTitle:r,background:"#fff",outline:"background",...t?{textContent:t}:null}}}(e);break;case"Dashboard":l=await async function(e,n,r,t){let{properties:a}=e;const{dataSource:o,groupField:s,widgets:i}=a;r.usedHelpers.add("_helper_getLatestMetricValue"),r.usedHelpers.add("_helper_extractList"),r.usedHelpers.add("_helper_groupMetricData"),r.usedHelpers.add("_helper_getMetricDisplayNames");const l=s?"#showKey":void 0,{isString:p,expression:d}=c(o),u=p?`<%= FN._helper_extractList((${d})) %>`:o;if(t.expanded){let e=i;const n=[];if(n.length>0){e=[];const r=new Set,t=new Set(i.map((e=>e.metric.id)));for(const a of i){if(r.has(a.metric.id))continue;const o={...a};e.push(o);const s=n.find((e=>e.metrics.includes(a.metric.id)));if(s){const e=s.metrics.filter((e=>t.has(e)));if(e.length>1){o.relevantMetrics=e,o.counterMetric=s.counter,o.groupTitle=s.group;for(const n of e)r.add(n),t.delete(n)}}}}let r=0;return{brick:"div",properties:{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(500px, 1fr))",gap:"16px"},dataset:{component:"dashboard"}},children:e.map((e=>{var n,t;const{title:a,metric:o,size:s,precision:i}=e,p=null!==(n=null===(t=e.relevantMetrics)||void 0===t?void 0:t.length)&&void 0!==n?n:l?2:1,c=Array.from({length:p},((e,n)=>f[(r+n)%f.length]));r+=p;const m="load"===o.unit?"":o.unit,b={brick:"chart-v2.time-series-chart",properties:{data:u,xField:"time",...e.relevantMetrics?{yFields:`<% FN._helper_getMetricDisplayNames((${d}).displayNameList, ${JSON.stringify(e.relevantMetrics)}) %>`}:{yField:`<% FN._helper_getMetricDisplayNames((${d}).displayNameList, [${JSON.stringify(o.id)}])[0] %>`},...e.counterMetric?{forceAbsoluteNumbers:!0,series:{[e.counterMetric]:{isNegative:!0}}}:null,height:"large"===s?230:200,timeFormat:"HH:mm",...e.relevantMetrics||l?null:{areaOptions:{style:{fill:`l(90) 0:${c[0]} 1:#ffffff`}}},axis:{yAxis:{unit:m,precision:i,...e.counterMetric?null:"percent(1)"===m?{min:0,max:1}:"percent(100)"===m||"%"===m?{min:0,max:100}:{min:0},shape:"smooth"}},groupField:l,areaShape:"smooth",legends:!(!e.relevantMetrics&&!l),colors:c,tooltip:{marker:{fill:c[0],stroke:"#fff",lineWidth:2,shadowColor:c[0],shadowBlur:8,shadowOffsetX:0,shadowOffsetY:4},domStyles:{"g2-tooltip":{background:[`radial-gradient( farthest-corner at -20px 150px, ${c[0]} 0%, rgba(238,238,238,0) 60%)`,"linear-gradient( 180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.8) 100%)"].join(", "),boxShadow:`0px 4px 8px 0px ${g(c[0],.08)}`,borderRadius:"8px",border:"1px solid rgba(255,255,255,1)",backdropFilter:"blur(3px)"}}}}};return{brick:"div",properties:{style:{background:"rgba(255,255,255,0.8)",boxShadow:"0px 2px 4px 0px rgba(0,0,0,0.06)",borderRadius:"8px",padding:"16px 20px 20px"}},children:[{brick:"div",properties:{style:{fontSize:"16px",fontWeight:"500",marginBottom:"20px"},textContent:e.groupTitle||a||o.id}},b]}}))}}return l?{brick:"div",properties:{style:{display:"flex",flexDirection:"column",gap:"8px"}},children:[{brick:":forEach",dataSource:`<%= FN._helper_groupMetricData(FN._helper_extractList((${d})), ${JSON.stringify(l)}) %>`,children:[{brick:"div",properties:{textContent:"<% `${ITEM.group}:` %>",style:{fontWeight:"500"}}},{brick:"div",properties:{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(200px, 1fr))",gap:"10px",marginBottom:"8px"},dataset:{component:"dashboard"}},children:i.map(((e,n)=>{const{title:r,metric:t,precision:a}=e;return{brick:"ai-portal.stat-with-mini-chart",properties:{size:"small",label:r||t.id,data:"<% ITEM.list %>",xField:"time",yField:t.id,lineColor:f[n%f.length],showArea:!0,..."percent(1)"===t.unit?{min:0,max:1}:"percent(100)"===t.unit||"%"===t.unit?{min:0,max:100}:{min:0},value:`<%= FN._helper_getLatestMetricValue(ITEM.list, ${JSON.stringify({metric:t,precision:a})}) %>`}}}))}]}]}:{brick:"div",properties:{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(200px, 1fr))",gap:"10px"},dataset:{component:"dashboard"}},children:i.map(((e,n)=>{const{title:r,metric:t,precision:a}=e;return{brick:"ai-portal.stat-with-mini-chart",properties:{size:"small",label:r||t.id,data:u,xField:"time",yField:t.id,lineColor:f[n%f.length],showArea:!0,..."percent(1)"===t.unit?{min:0,max:1}:"percent(100)"===t.unit||"%"===t.unit?{min:0,max:100}:{min:0},value:`<%= FN._helper_getLatestMetricValue((${p?`FN._helper_extractList((${d}))`:JSON.stringify(null!=o?o:null)}), ${JSON.stringify({metric:t,precision:a})}) %>`}}}))}}(e,0,r,a);break;case"Button":l=await function(e){const{properties:n}=e;return{brick:"eo-button",properties:{...n,themeVariant:"elevo"}}}(e);break;case"Form":l=await function(e){const{properties:n}=e,{values:r}=null!=n?n:{};return{brick:"eo-form",properties:{values:null!=r?r:{},themeVariant:"elevo"}}}(e);break;case"Toolbar":l=await{brick:"eo-flex-layout",properties:{gap:"0.5em",alignItems:"center"}};break;case"Modal":l=await function(e){const{properties:n}=e,{title:r,confirmText:t,cancelText:a,...o}=n;return{brick:"eo-modal",portal:!0,properties:{themeVariant:"elevo",modalTitle:r,confirmText:t,cancelText:a,keyboard:!0,...o}}}(e);break;case"Plaintext":l=await function(e){const{properties:n}=e;return{brick:"span",properties:{...n}}}(e);break;case"Link":l=await function(e,n,r){const{properties:t}=e;return{brick:"eo-link",properties:{...t,inApp:"app"===r.app.appType,themeVariant:"elevo"}}}(e,0,r);break;case"Output":l=await function(e){const{properties:n}=e,{style:r,...t}=n;return{brick:"pre",properties:{style:{background:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)",fontFamily:'"Fira Code", "Fira Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",tabSize:"2",hyphens:"none",fontSize:"13px",padding:"1em",margin:"0",overflowX:"auto",borderRadius:"9px",...r},...t}}}(e);break;case"Tag":l=await function(e){const{properties:n}=e;return{brick:"eo-tag",properties:{...n,themeVariant:"elevo"}}}(e);break;case"Avatar":l=await function(e){const{properties:n}=e;return{brick:"eo-avatar",properties:{...n,themeVariant:"elevo"}}}(e);break;case"AvatarGroup":l=await function(e){const{properties:n}=e;return{brick:"eo-avatar-group",properties:{...n,themeVariant:"elevo"}}}(e);break;case"CodeBlock":l=await function(e){const{properties:n}=e;return{brick:"eo-code-block",properties:{...n,themeVariant:"elevo"}}}(e);break;case"Search":case"Input":case"NumberInput":case"Textarea":case"Select":case"Radio":case"Checkbox":case"Switch":case"DatePicker":case"TimePicker":l=await function(e,n){const{properties:r}=e;let t=n,a={...r,themeVariant:"elevo"};switch(t){case"eo-search":a={...a,trim:!0};break;case"eo-number-input":t="eo-input",a={type:"number",...a}}return{brick:t,properties:a}}(e,(d=e.name,d.includes("-")?d:`eo${d.replace(/([A-Z])/g,"-$1").toLowerCase()}`));break;case"ForEach":l=await function(e){const{properties:n}=e,{dataSource:r}=n;return{brick:":forEach",dataSource:r}}(e);break;case"If":l=await function(e){const{properties:n}=e,{dataSource:r}=n;return{brick:":if",dataSource:r}}(e);break;default:"app"===r.app.appType&&e.name.toLowerCase()===e.name?l={brick:e.name,properties:e.properties}:console.error("Unknown component:",e.name)}else{var p;const{type:t,importSource:o,name:s}=e.reference;let i;if("imported"===t){const e=r.app.modules.get(o);i=s?null==e?void 0:e.namedExports.get(s):null==e?void 0:e.defaultExport}else i=[...n.internals,...n.namedExports.values()].find((e=>{var n;return"template"===e.type&&(null===(n=e.component.id)||void 0===n?void 0:n.name)===s}));if("template"===(null===(p=i)||void 0===p?void 0:p.type)){const n=i.component.id.name;l={brick:"app"===r.app.appType?(0,b.v)(n):(0,b.$)(n,a.rootId),properties:e.properties}}else console.error(`Cannot find the component "${e.reference.name}".`)}var d,h,y,v,k;return l?(e.ref&&("template"===o?l.ref=e.ref:(null!==(y=(h=l).properties)&&void 0!==y||(h.properties={}),null!==(k=(v=l.properties).dataset)&&void 0!==k||(v.dataset={}),l.properties.dataset.ref=e.ref)),e.slot&&(l.slot=e.slot),l.events=function(e,n){const r={};for(const[a,o]of Object.entries(null!==(t=e.events)&&void 0!==t?t:{})){var t;switch(e.name){case"Table":switch(a){case"select":{const e=s(o,n);e&&(r["row.select.v2"]=e);break}case"sort":{const e=s(o,n);e&&(r["sort.change"]=e);break}case"paginate":{const e=s(o,n);e&&(r["page.change"]=e);break}}break;case"Button":if("click"===a){const e=s(o,n);e&&(r.click=e)}break;case"Search":if("search"===a){const e=s(o,n);e&&(r.search=e)}break;case"Select":if("change"===a){const e=s(o,n);e&&(r["change.v2"]=e)}break;default:{const e=s(o,n);e&&(r[a]=e)}}}return Object.keys(r).length>0?r:void 0}(e,a),null!==(i=e.children)&&void 0!==i&&i.length&&(l.children=(await Promise.all(e.children.map((e=>x(e,n,r,a,o))))).flat(),("Card"===e.name||"Modal"===e.name)&&l.children.length>0&&(l.children=[{brick:"eo-content-layout",children:l.children}])),l):[]}async function h(e,n,r){if(e.usedHelpers.size>0)for(const r of e.usedHelpers)n.usedHelpers.add(r);const[t,a,o]=await Promise.all([e.defaultExport?y(e.defaultExport,e,n,r):null,Promise.all(Array.from(e.namedExports.entries()).map((async t=>{let[a,o]=t;return[a,await y(o,e,n,r)]}))).then((e=>new Map(e))),Promise.all(e.internals.map((t=>y(t,e,n,r))))]);return{sourceModule:e,defaultExport:t,namedExports:a,internals:o}}async function y(e,n,r,a){var s,i;if("function"===e.type)return e;const l=[],{component:p}=e;for(const e of p.bindingMap.values())"resource"===e.kind?l.push(o(e.resource)):"state"!==e.kind&&"constant"!==e.kind&&"param"!==e.kind||l.push({name:e.id.name,value:e.initialValue,expose:"param"===e.kind,track:!0});let c;if("view"===e.type){var d;const e=null===(d=p.children)||void 0===d?void 0:d.find((e=>(0,t.dN)(e,"View")));e&&(c=e.children)}else c=p.children;const u=null!==(s=c)&&void 0!==s&&s.length?(await Promise.all(c.map((t=>x(t,n,r,a,e.type))))).flat():[];return{type:e.type,bricks:u,context:l,name:null===(i=p.id)||void 0===i?void 0:i.name,title:e.title}}}}]);
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
"use strict";(globalThis.webpackChunk_next_bricks_vb_experiment=globalThis.webpackChunk_next_bricks_vb_experiment||[]).push([[2857],{1746:(e,n,r)=>{r.d(n,{f:()=>s});var t=r(7695);let a,o;function s(){return a||(a=(async()=>{const e=(0,t.LV)((o||(o=new Worker(new URL(r.p+r.u(7131),r.b))),o));return await new e})()),a}},2518:e=>{e.exports='/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-empty-object-type */\n\nexport interface ViewProps {\n title: string;\n}\n\nexport interface BaseProps {\n key?: string | number;\n}\n\nexport interface TableProps<T extends object> extends BaseProps {\n dataSource: {\n list: T[];\n page?: number;\n pageSize?: number;\n total?: number;\n };\n columns: TableColumn<T>[];\n rowKey: string;\n rowSelection?: boolean;\n sort?: TableSort | null;\n pagination?: boolean;\n onSelect?: (event: CustomEvent<T[]>) => void;\n onPaginate?: (event: CustomEvent<{ page: number; pageSize: number }>) => void;\n onSort?: (event: CustomEvent<TableSort | null>) => void;\n}\n\nexport interface ListProps extends BaseProps {\n dataSource: object[];\n fields?: {\n title?: string;\n icon?: string;\n url?: string;\n };\n variant?: "default" | "navigation" | "ranking";\n}\n\nexport interface DescriptionsProps<T extends object> extends BaseProps {\n title?: string;\n dataSource?: T;\n list: Array<\n | {\n label: string;\n text: string;\n }\n | {\n label: string;\n /** 数据字段,多级字段使用点号分隔 */\n field: string;\n }\n | {\n label: string;\n render: (record: T) => any;\n }\n >;\n}\n\nexport interface ButtonProps extends BaseProps {\n type?: "default" | "primary";\n icon?: IconProps;\n onClick?: (e: Event) => void;\n}\n\nexport interface SearchProps extends BaseProps {\n placeholder?: string;\n onSearch?: (e: CustomEvent<string>) => void;\n}\n\nexport interface FormProps<T extends object> extends BaseProps {\n values?: T;\n onValidateSuccess?: (e: CustomEvent<T>) => void;\n ref?: {\n readonly current: FormRef;\n };\n}\n\nexport interface FormRef {\n validate: () => void;\n reset: () => void;\n}\n\nexport interface InputProps extends FormItemProps {\n placeholder?: string;\n}\n\nexport interface NumberInputProps extends InputProps {\n min?: number;\n max?: number;\n}\n\nexport interface TextareaProps extends InputProps {}\n\nexport interface SelectProps extends InputProps {\n options: (FormItemOptions | string)[];\n onChange?: (e: CustomEvent<string | number | boolean | null>) => void;\n}\n\nexport interface RadioProps extends SelectProps {}\n\nexport interface CheckboxProps extends SelectProps {}\n\nexport interface SwitchProps extends FormItemProps {}\n\nexport interface DatePickerProps extends FormItemProps {}\n\nexport interface TimePickerProps extends FormItemProps {}\n\nexport interface DashboardProps extends BaseProps {\n dataSource: Array<object>;\n groupField?: string;\n widgets: Array<DashboardWidget>;\n}\n\nexport interface ModalProps extends BaseProps {\n title: string;\n confirmText?: string;\n cancelText?: string;\n onConfirm?: () => void;\n ref?: {\n readonly current: ModalRef;\n };\n}\n\nexport interface ModalRef {\n open: () => void;\n close: () => void;\n}\n\nexport interface CardProps extends BaseProps {\n title?: string;\n}\n\nexport interface TagProps extends BaseProps {\n color?: string;\n outline?: boolean;\n}\n\nexport interface LinkProps extends BaseProps {\n /** 站外链接 */\n href?: string;\n\n /** 站内链接 */\n url?: string;\n\n target?: "_blank" | "_self";\n}\n\nexport interface AvatarProps extends BaseProps {\n size?: "large" | "medium" | "small";\n name?: string;\n src?: string;\n}\n\nexport interface AvatarGroupProps extends BaseProps {\n size?: "large" | "medium" | "small";\n}\n\nexport interface CodeBlockProps extends BaseProps {\n source: string;\n language: string;\n}\n\nexport interface PlaintextProps extends BaseProps {\n /** Related advisory information */\n title?: string;\n}\n\nexport interface DashboardWidget {\n widget: "chart";\n type: "line" | "area";\n title?: string;\n metric: {\n id: string;\n unit: string;\n };\n precision?: number;\n}\n\nexport interface FormItemProps extends BaseProps {\n name: string;\n label?: string;\n required?: boolean;\n disabled?: boolean;\n}\n\nexport interface FormItemOptions {\n label: string;\n value: string;\n}\n\nexport interface IconProps {\n lib: "fa";\n prefix: "fas" | "far";\n icon: string;\n}\n\nexport interface TableColumn<T extends object> {\n key: string;\n /** 数据索引,多级索引使用数组 */\n dataIndex: string | string[];\n title: string;\n sortable?: boolean;\n render?: (value: any, record: T) => any;\n}\n\nexport interface TableSort {\n columnKey: string | number;\n order: "ascend" | "descend";\n}\n\ndeclare const View: (props: ViewProps) => any;\ndeclare const Table: <T extends object>(props: TableProps<T>) => any;\ndeclare const List: (props: ListProps) => any;\ndeclare const Descriptions: <T extends object>(\n props: DescriptionsProps<T>\n) => any;\ndeclare const Button: (props: ButtonProps) => any;\ndeclare const Toolbar: (props: BaseProps) => any;\ndeclare const Search: (props: SearchProps) => any;\ndeclare const Form: <T extends object>(props: FormProps<T>) => any;\ndeclare const Input: (props: InputProps) => any;\ndeclare const NumberInput: (props: NumberInputProps) => any;\ndeclare const Textarea: (props: TextareaProps) => any;\ndeclare const Select: (props: SelectProps) => any;\ndeclare const Radio: (props: RadioProps) => any;\ndeclare const Checkbox: (props: CheckboxProps) => any;\ndeclare const Switch: (props: SwitchProps) => any;\ndeclare const DatePicker: (props: DatePickerProps) => any;\ndeclare const TimePicker: (props: TimePickerProps) => any;\ndeclare const Dashboard: (props: DashboardProps) => any;\ndeclare const Modal: (props: ModalProps) => any;\ndeclare const Card: (props: CardProps) => any;\ndeclare const Output: (props: BaseProps) => any;\ndeclare const Tag: (props: TagProps) => any;\ndeclare const Link: (props: LinkProps) => any;\ndeclare const Avatar: (props: AvatarProps) => any;\ndeclare const AvatarGroup: (props: AvatarGroupProps) => any;\ndeclare const CodeBlock: (props: CodeBlockProps) => any;\ndeclare const Plaintext: (props: PlaintextProps) => any;\ndeclare const Fragment: (props: { key?: string | number }) => any;\n'},2826:(e,n,r)=>{r.d(n,{UQ:()=>s,dN:()=>l,zk:()=>i}),r(8135);var t=r(3303);const a=/^<%=?\s/,o=/\s%>$/;function s(e){if("string"!=typeof e)return!1;const n=e.trim();return a.test(n)&&o.test(n)}function i(e){return!e.reference||"imported"===e.reference.type&&e.reference.importSource===t.F}function l(e,n){return i(e)&&(e.reference?e.reference.name===n:e.name===n)}},3303:(e,n,r)=>{r.d(n,{F:()=>t});const t="next-tsx"},3808:(e,n,r)=>{r.d(n,{$:()=>o,v:()=>s});let t=0;const a=new Map;function o(e,n){return`${function(e){return a.has(e)||a.set(e,"isolated-tpl-"+t++),a.get(e)}(n)}${i(e)}`}function s(e){return`tpl-${i(e)}`}function i(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase()}},5146:e=>{e.exports='/** 返回一个有状态的值和一个更新它的函数。 */\nexport const useState: <T>(\n initialValue?: T\n) => [value: T, setter: (value: T) => void];\n\n/** 异步获取资源,返回获取到的数据、以及一个重新拉取数据的函数 */\nexport const useResource: <T = any>(\n fetcher: () => Promise<T>,\n options?: {\n // 不启用则直接返回 fallback\n enabled?: boolean;\n fallback?: unknown;\n }\n) => [data: T, refetch: () => void];\n\n/** 返回一个可变的 ref 对象,其 `.current` 属性初始化为传入的参数 (`initialValue`) */\nexport const useRef: <T>(initialValue: T) => {\n current: T;\n};\n\n/** 获取当前的 URL search 参数 */\nexport const useQuery: () => {\n readonly [key: string]: string | undefined;\n};\n\n/** 更新当前的 URL search 参数 */\nexport const pushQuery: (\n newQuery: Record<string, string | null>,\n options?: {\n clear?: boolean; // 是否清除已有参数,默认 false\n notify?: boolean; // 是否通知路由变化,默认 true\n }\n) => void;\n\n/** 调用指定的 Provider 接口 */\nexport const callApi: <T extends keyof ContractMap>(\n api: T,\n params: Parameters<ContractMap[T]>[0]\n) => Promise<ReturnType<ContractMap[T]>>;\n\n/** 调用指定的 HTTP 接口 */\nexport const callHttp: <T = any>(url: string, init?: RequestInit) => Promise<T>;\n\n/** 调用指定的工具函数 */\nexport const callTool: <T = any, P = any>(\n conversationId: string,\n stepId: string,\n params: P\n) => Promise<T>;\n\n/** 提示用户操作结果 */\nexport const showMessage: (options: {\n type: "success" | "error";\n content: string;\n}) => void;\n'},6806:(e,n,r)=>{r.d(n,{A:()=>h});var t=r(2826),a=r(7019);function o(e){const{name:n,http:r,api:t,params:o,tool:s,transform:i,rejectTransform:l,config:p,scope:c}=e,d=p&&Object.prototype.hasOwnProperty.call(p,"enabled");return{name:n,resolve:{...r?{useProvider:"basic.http-request",args:[t,o]}:s?{useProvider:"ai-portal.call-tool",args:[s,o]}:{useProvider:`${t}:*`,params:o,..."easyops.api.data_exchange.olap@Query"===t&&(0,a.isObject)(o)?{params:{...o,translate:["#showKey"],limit:void 0,limitBy:void 0,order:void 0,displayName:!0}}:null},...i?{transform:{value:i}}:null,...l?{onReject:{transform:{value:l}}}:null,...d?{if:p.enabled}:null},track:!0,...d?{value:p.fallback}:null,..."template"===c?{expose:!1}:null}}function s(e,n){if(!e)return;const r=(Array.isArray(e)?e:[e]).map((e=>function(e,n){var r;switch(null==e?void 0:e.action){case"update_variable":return{action:"template"===e.payload.scope?"state.update":"context.replace",args:[e.payload.name,e.payload.value]};case"refresh_data_source":return{action:"template"===e.payload.scope?"state.refresh":"context.refresh",args:[e.payload.name]};case"call_api":{var t;const{api:r,http:a,tool:o,params:i}=e.payload,l=null!==(t=e.callback)&&void 0!==t&&t.success?s(e.callback.success,n):void 0;return{...a?{useProvider:"basic.http-request",args:[r,i]}:o?{useProvider:"ai-portal.call-tool",args:[o,i]}:{useProvider:`${r}:*`,params:i},callback:{...l&&{success:l},error:{action:"handleHttpError"}}}}case"call_ref":return{..."template"===e.payload.scope?{targetRef:e.payload.ref}:{target:`[data-root-id="${n.rootId}"] [data-ref="${e.payload.ref}"]`},method:e.payload.method,args:e.payload.args};case"update_query":return{action:"replace"===e.payload.method?"history.replaceQuery":"history.pushQuery",args:e.payload.args};case"show_message":return{action:`message.${e.payload.type}`,args:[e.payload.content]};case"dispatch_event":return{action:"tpl.dispatchEvent",args:[e.payload.type,{detail:e.payload.detail}]};case"conditional":return{if:e.payload.test,then:null!==(r=s(e.payload.consequent,n))&&void 0!==r?r:[],else:s(e.payload.alternate,n)}}}(e,n))).filter(Boolean);return r.length>0?r:void 0}var i=r(9655);const l=/^<%=?\s/,p=/\s%>$/;function c(e){if("string"!=typeof e)return{isString:!1};let n;const r=e.trim();var t;return t=r,l.test(t)&&p.test(t)?n=r.replace(l,"").replace(p,"").trim():(console.warn("Invalid expression:",JSON.stringify(e)),n="null"),{isString:!0,embedded:e,expression:n,usedContexts:(0,i.strictCollectMemberUsage)(e,"CTX")}}var d=r(1321);function u(e,n){return null!=n&&n.size?Array.isArray(e)?e.map((e=>u(e,n))):"object"==typeof e&&null!==e?Object.fromEntries(Object.entries(e).map((e=>{let[r,t]=e;return[r,u(t,n)]}))):"string"==typeof e&&(0,t.UQ)(e)?function(e,n){if(null==n||!n.size)return e;if([...n.keys()].some((n=>e.includes(n)))){const r=[];let t;try{t=(0,d.preevaluate)(e,{withParent:!0,hooks:{beforeVisitGlobal(e,t){if(n.has(e.name)){var a;const n=null===(a=t[t.length-1])||void 0===a?void 0:a.node;let o;n&&"Property"===n.type&&!n.computed&&n.shorthand&&(o=!0),r.push({id:e,shorthand:o})}}}})}catch(e){console.error("Parse expression failed:",e)}if(r.length>0&&t){const{prefix:e,source:a,suffix:o}=t,s=[];let i=0;for(let e=0;e<r.length;e++){const{id:t,shorthand:o}=r[e],{name:l,start:p,end:c}=t;s.push(a.substring(i,p),`${o?`${l}: `:""}${n.get(l)}`),i=c}return s.push(a.substring(i)),`${e}${s.join("")}${o}`}}return e}(e,n):e:e}const m=["cellData","rowData"],f=["#336EF4","#45CAFF","#41CDCF","#8146F3","#F8A075","#94E65E","#57689C","#C285EF","#FAC60B","#E4551F","#8984FF","#2540FF","#08BF33","#F7811C","#AC7CFF","#1BA5DC","#E89716","#76A6F5","#4F69FF"];function g(e,n){const r=e.slice(1),t=parseInt(r,16);return`rgba(${t>>16&255}, ${t>>8&255}, ${255&t}, ${n})`}var b=r(3808);async function x(e,n,r,a,o){var i;let l=null;if((0,t.zk)(e))switch(e.reference?e.reference.name:e.name){case"List":l=await function(e){let{properties:n}=e;const r=n,{dataSource:t,fields:a,variant:o}=r,s=c(t);return{brick:"eo-list",properties:{variant:o,dataSource:s.isString?s.embedded:t,fields:a,themeVariant:"elevo"}}}(e);break;case"Table":l=await async function(e,n,r,t,a){var o;const{properties:s}=e,{dataSource:i,size:l,columns:p,rowKey:d,pagination:f,...g}=s,b=c(i),h=new Map,y=Array.isArray(p)?await Promise.all(p.map((async e=>{let{render:o,...s}=e;if(o){const e=new Map;for(let n=0;n<o.params.length&&n<m.length;n++)e.set(o.params[n],`DATA.${m[n]}`);const i=(await Promise.all(o.children.map((e=>x(e,n,r,t,a))))).flatMap((n=>u(n,e)));return{...s,useBrick:i.map((e=>e.brick.startsWith(":")?{brick:"div",children:[e]}:e))}}return"string"==typeof s.dataIndex&&h.has(s.dataIndex)?{...s,useChildren:`[${s.dataIndex}]`}:s}))):p;return{brick:"eo-next-table",properties:{dataSource:b.isString?b.embedded:i,...g,rowKey:null!=d?d:Array.isArray(p)?null===(o=p[0])||void 0===o?void 0:o.key:void 0,columns:y,themeVariant:"elevo",scrollConfig:{x:"max-content"},...t.expanded?{bordered:!0,pagination:f,size:"large"}:{size:"middle",pagination:!1}},children:h.size>0?Array.from(h.values()):[]}}(e,n,r,a,o);break;case"Descriptions":l=await async function(e,n,r,t,a){let{properties:o}=e;const{dataSource:s,title:i,list:l,columns:p,...d}=o,m=c(s),f=new Map,g=Array.isArray(l)?await Promise.all(l.map((async e=>{let{render:o,...s}=e;if(o){const e=new Map;o.params.length>0&&e.set(o.params[0],"DATA");const i=(await Promise.all(o.children.map((e=>x(e,n,r,t,a))))).flatMap((n=>u(n,e)));return{label:s.label,useBrick:i}}return(s.field?f.get(s.field):void 0)?{label:s.label,useChildren:`[${s.field}]`}:s}))):l;return{brick:"eo-descriptions",properties:{...d,dataSource:m.isString?m.embedded:s,list:g,...null==p?{column:t.expanded?3:1,templateColumns:"repeat(auto-fill,minmax(360px,1fr))"}:{column:p},themeVariant:"elevo"},children:f.size>0?Array.from(f.values()):[]}}(e,n,r,a,o);break;case"Card":l=await function(e){const{properties:n}=e,{title:r,textContent:t}=n;return{brick:"eo-card",properties:{themeVariant:"elevo",cardTitle:r,background:"#fff",outline:"background",...t?{textContent:t}:null}}}(e);break;case"Dashboard":l=await async function(e,n,r,t){let{properties:a}=e;const{dataSource:o,groupField:s,widgets:i}=a;r.usedHelpers.add("_helper_getLatestMetricValue"),r.usedHelpers.add("_helper_extractList"),r.usedHelpers.add("_helper_groupMetricData"),r.usedHelpers.add("_helper_getMetricDisplayNames");const l=s?"#showKey":void 0,{isString:p,expression:d}=c(o),u=p?`<%= FN._helper_extractList((${d})) %>`:o;if(t.expanded){let e=i;const n=[];if(n.length>0){e=[];const r=new Set,t=new Set(i.map((e=>e.metric.id)));for(const a of i){if(r.has(a.metric.id))continue;const o={...a};e.push(o);const s=n.find((e=>e.metrics.includes(a.metric.id)));if(s){const e=s.metrics.filter((e=>t.has(e)));if(e.length>1){o.relevantMetrics=e,o.counterMetric=s.counter,o.groupTitle=s.group;for(const n of e)r.add(n),t.delete(n)}}}}let r=0;return{brick:"div",properties:{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(500px, 1fr))",gap:"16px"},dataset:{component:"dashboard"}},children:e.map((e=>{var n,t;const{title:a,metric:o,size:s,precision:i}=e,p=null!==(n=null===(t=e.relevantMetrics)||void 0===t?void 0:t.length)&&void 0!==n?n:l?2:1,c=Array.from({length:p},((e,n)=>f[(r+n)%f.length]));r+=p;const m="load"===o.unit?"":o.unit,b={brick:"chart-v2.time-series-chart",properties:{data:u,xField:"time",...e.relevantMetrics?{yFields:`<% FN._helper_getMetricDisplayNames((${d}).displayNameList, ${JSON.stringify(e.relevantMetrics)}) %>`}:{yField:`<% FN._helper_getMetricDisplayNames((${d}).displayNameList, [${JSON.stringify(o.id)}])[0] %>`},...e.counterMetric?{forceAbsoluteNumbers:!0,series:{[e.counterMetric]:{isNegative:!0}}}:null,height:"large"===s?230:200,timeFormat:"HH:mm",...e.relevantMetrics||l?null:{areaOptions:{style:{fill:`l(90) 0:${c[0]} 1:#ffffff`}}},axis:{yAxis:{unit:m,precision:i,...e.counterMetric?null:"percent(1)"===m?{min:0,max:1}:"percent(100)"===m||"%"===m?{min:0,max:100}:{min:0},shape:"smooth"}},groupField:l,areaShape:"smooth",legends:!(!e.relevantMetrics&&!l),colors:c,tooltip:{marker:{fill:c[0],stroke:"#fff",lineWidth:2,shadowColor:c[0],shadowBlur:8,shadowOffsetX:0,shadowOffsetY:4},domStyles:{"g2-tooltip":{background:[`radial-gradient( farthest-corner at -20px 150px, ${c[0]} 0%, rgba(238,238,238,0) 60%)`,"linear-gradient( 180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.8) 100%)"].join(", "),boxShadow:`0px 4px 8px 0px ${g(c[0],.08)}`,borderRadius:"8px",border:"1px solid rgba(255,255,255,1)",backdropFilter:"blur(3px)"}}}}};return{brick:"div",properties:{style:{background:"rgba(255,255,255,0.8)",boxShadow:"0px 2px 4px 0px rgba(0,0,0,0.06)",borderRadius:"8px",padding:"16px 20px 20px"}},children:[{brick:"div",properties:{style:{fontSize:"16px",fontWeight:"500",marginBottom:"20px"},textContent:e.groupTitle||a||o.id}},b]}}))}}return l?{brick:"div",properties:{style:{display:"flex",flexDirection:"column",gap:"8px"}},children:[{brick:":forEach",dataSource:`<%= FN._helper_groupMetricData(FN._helper_extractList((${d})), ${JSON.stringify(l)}) %>`,children:[{brick:"div",properties:{textContent:"<% `${ITEM.group}:` %>",style:{fontWeight:"500"}}},{brick:"div",properties:{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(200px, 1fr))",gap:"10px",marginBottom:"8px"},dataset:{component:"dashboard"}},children:i.map(((e,n)=>{const{title:r,metric:t,precision:a}=e;return{brick:"ai-portal.stat-with-mini-chart",properties:{size:"small",label:r||t.id,data:"<% ITEM.list %>",xField:"time",yField:t.id,lineColor:f[n%f.length],showArea:!0,..."percent(1)"===t.unit?{min:0,max:1}:"percent(100)"===t.unit||"%"===t.unit?{min:0,max:100}:{min:0},value:`<%= FN._helper_getLatestMetricValue(ITEM.list, ${JSON.stringify({metric:t,precision:a})}) %>`}}}))}]}]}:{brick:"div",properties:{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(200px, 1fr))",gap:"10px"},dataset:{component:"dashboard"}},children:i.map(((e,n)=>{const{title:r,metric:t,precision:a}=e;return{brick:"ai-portal.stat-with-mini-chart",properties:{size:"small",label:r||t.id,data:u,xField:"time",yField:t.id,lineColor:f[n%f.length],showArea:!0,..."percent(1)"===t.unit?{min:0,max:1}:"percent(100)"===t.unit||"%"===t.unit?{min:0,max:100}:{min:0},value:`<%= FN._helper_getLatestMetricValue((${p?`FN._helper_extractList((${d}))`:JSON.stringify(null!=o?o:null)}), ${JSON.stringify({metric:t,precision:a})}) %>`}}}))}}(e,0,r,a);break;case"Button":l=await function(e){const{properties:n}=e;return{brick:"eo-button",properties:{...n,themeVariant:"elevo"}}}(e);break;case"Form":l=await function(e){const{properties:n}=e,{values:r}=null!=n?n:{};return{brick:"eo-form",properties:{values:null!=r?r:{},themeVariant:"elevo"}}}(e);break;case"Toolbar":l=await{brick:"eo-flex-layout",properties:{gap:"0.5em",alignItems:"center"}};break;case"Modal":l=await function(e){const{properties:n}=e,{title:r,confirmText:t,cancelText:a,...o}=n;return{brick:"eo-modal",portal:!0,properties:{themeVariant:"elevo",modalTitle:r,confirmText:t,cancelText:a,keyboard:!0,...o}}}(e);break;case"Plaintext":l=await function(e){const{properties:n}=e;return{brick:"span",properties:{...n}}}(e);break;case"Link":l=await function(e,n,r){const{properties:t}=e;return{brick:"eo-link",properties:{...t,inApp:"app"===r.app.appType,themeVariant:"elevo"}}}(e,0,r);break;case"Output":l=await function(e){const{properties:n}=e,{style:r,...t}=n;return{brick:"pre",properties:{style:{background:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)",fontFamily:'"Fira Code", "Fira Mono", Menlo, Consolas, "DejaVu Sans Mono", monospace',direction:"ltr",textAlign:"left",whiteSpace:"pre",wordSpacing:"normal",wordBreak:"normal",lineHeight:"1.5",tabSize:"2",hyphens:"none",fontSize:"13px",padding:"1em",margin:"0",overflowX:"auto",borderRadius:"9px",...r},...t}}}(e);break;case"Tag":l=await function(e){const{properties:n}=e;return{brick:"eo-tag",properties:{...n,themeVariant:"elevo"}}}(e);break;case"Avatar":l=await function(e){const{properties:n}=e;return{brick:"eo-avatar",properties:{...n,themeVariant:"elevo"}}}(e);break;case"AvatarGroup":l=await function(e){const{properties:n}=e;return{brick:"eo-avatar-group",properties:{...n,themeVariant:"elevo"}}}(e);break;case"CodeBlock":l=await function(e){const{properties:n}=e;return{brick:"eo-code-block",properties:{...n,themeVariant:"elevo"}}}(e);break;case"Search":case"Input":case"NumberInput":case"Textarea":case"Select":case"Radio":case"Checkbox":case"Switch":case"DatePicker":case"TimePicker":l=await function(e,n){const{properties:r}=e;let t=n,a={...r,themeVariant:"elevo"};switch(t){case"eo-search":a={...a,trim:!0};break;case"eo-number-input":t="eo-input",a={type:"number",...a}}return{brick:t,properties:a}}(e,(d=e.name,d.includes("-")?d:`eo${d.replace(/([A-Z])/g,"-$1").toLowerCase()}`));break;case"ForEach":l=await function(e){const{properties:n}=e,{dataSource:r}=n;return{brick:":forEach",dataSource:r}}(e);break;case"If":l=await function(e){const{properties:n}=e,{dataSource:r}=n;return{brick:":if",dataSource:r}}(e);break;default:"app"!==r.app.appType&&!a.allowAnyBricks||e.name.toLowerCase()!==e.name?console.error("Unknown component:",e.name):l={brick:e.name.replaceAll("_",".").replaceAll("--","."),properties:e.properties}}else{var p;const{type:t,importSource:o,name:s}=e.reference;let i;if("imported"===t){const e=r.app.modules.get(o);i=s?null==e?void 0:e.namedExports.get(s):null==e?void 0:e.defaultExport}else i=[...n.internals,...n.namedExports.values()].find((e=>{var n;return"template"===e.type&&(null===(n=e.component.id)||void 0===n?void 0:n.name)===s}));if("template"===(null===(p=i)||void 0===p?void 0:p.type)){const n=i.component.id.name;l={brick:"app"===r.app.appType?(0,b.v)(n):(0,b.$)(n,a.rootId),properties:e.properties}}else console.error(`Cannot find the component "${e.reference.name}".`)}var d,h,y,v,k;return l?(e.ref&&("template"===o?l.ref=e.ref:(null!==(y=(h=l).properties)&&void 0!==y||(h.properties={}),null!==(k=(v=l.properties).dataset)&&void 0!==k||(v.dataset={}),l.properties.dataset.ref=e.ref)),e.slot&&(l.slot=e.slot),l.events=function(e,n){const r={};for(const[a,o]of Object.entries(null!==(t=e.events)&&void 0!==t?t:{})){var t;switch(e.name){case"Table":switch(a){case"select":{const e=s(o,n);e&&(r["row.select.v2"]=e);break}case"sort":{const e=s(o,n);e&&(r["sort.change"]=e);break}case"paginate":{const e=s(o,n);e&&(r["page.change"]=e);break}}break;case"Button":if("click"===a){const e=s(o,n);e&&(r.click=e)}break;case"Search":if("search"===a){const e=s(o,n);e&&(r.search=e)}break;case"Select":if("change"===a){const e=s(o,n);e&&(r["change.v2"]=e)}break;default:{const e=s(o,n);e&&(r[a]=e)}}}return Object.keys(r).length>0?r:void 0}(e,a),null!==(i=e.children)&&void 0!==i&&i.length&&(l.children=(await Promise.all(e.children.map((e=>x(e,n,r,a,o))))).flat(),("Card"===e.name||"Modal"===e.name)&&l.children.length>0&&(l.children=[{brick:"eo-content-layout",children:l.children}])),l):[]}async function h(e,n,r){if(e.usedHelpers.size>0)for(const r of e.usedHelpers)n.usedHelpers.add(r);const[t,a,o]=await Promise.all([e.defaultExport?y(e.defaultExport,e,n,r):null,Promise.all(Array.from(e.namedExports.entries()).map((async t=>{let[a,o]=t;return[a,await y(o,e,n,r)]}))).then((e=>new Map(e))),Promise.all(e.internals.map((t=>y(t,e,n,r))))]);return{sourceModule:e,defaultExport:t,namedExports:a,internals:o}}async function y(e,n,r,a){var s,i;if("function"===e.type)return e;const l=[],{component:p}=e;for(const e of p.bindingMap.values())"resource"===e.kind?l.push(o(e.resource)):"state"!==e.kind&&"constant"!==e.kind&&"param"!==e.kind||l.push({name:e.id.name,value:e.initialValue,expose:"param"===e.kind,track:!0});let c;if("view"===e.type){var d;const e=null===(d=p.children)||void 0===d?void 0:d.find((e=>(0,t.dN)(e,"View")));e&&(c=e.children)}else c=p.children;const u=null!==(s=c)&&void 0!==s&&s.length?(await Promise.all(c.map((t=>x(t,n,r,a,e.type))))).flat():[];return{type:e.type,bricks:u,context:l,name:null===(i=p.id)||void 0===i?void 0:i.name,title:e.title}}}}]);
|
|
2
|
+
//# sourceMappingURL=2857.da8e603e.js.map
|