@next-bricks/vb-experiment 1.3.11 → 1.3.13
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/246.e9cdf4f2.js +2 -0
- package/dist/chunks/246.e9cdf4f2.js.map +1 -0
- package/dist/chunks/2908.6002efc9.js +2 -0
- package/dist/chunks/2908.6002efc9.js.map +1 -0
- package/dist/chunks/3735.61433691.js +15 -0
- package/dist/chunks/3735.61433691.js.map +1 -0
- package/dist/chunks/8024.9fc7a2a0.js +2 -0
- package/dist/chunks/8024.9fc7a2a0.js.map +1 -0
- package/dist/chunks/{5521.17b56374.js → 8135.e17b904e.js} +2 -2
- package/dist/chunks/8135.e17b904e.js.map +1 -0
- package/dist/chunks/8302.b457ddff.js +2 -0
- package/dist/chunks/8302.b457ddff.js.map +1 -0
- package/dist/chunks/{5606.90339034.js → 9752.12c61013.js} +2 -2
- package/dist/chunks/{5606.90339034.js.map → 9752.12c61013.js.map} +1 -1
- package/dist/chunks/{export-as-source-files.bbf05b2f.js → export-as-source-files.ce8ffd89.js} +2 -2
- package/dist/chunks/{export-as-source-files.bbf05b2f.js.map → export-as-source-files.ce8ffd89.js.map} +1 -1
- package/dist/chunks/{export-widgets.6a9a4247.js → export-widgets.f2b4700e.js} +2 -2
- package/dist/chunks/{export-widgets.6a9a4247.js.map → export-widgets.f2b4700e.js.map} +1 -1
- package/dist/chunks/main.4fb3a06c.js +2 -0
- package/dist/chunks/{main.1cd6e811.js.map → main.4fb3a06c.js.map} +1 -1
- package/dist/chunks/tsx-playground.6413b3f9.js +2 -0
- package/dist/chunks/tsx-playground.6413b3f9.js.map +1 -0
- package/dist/examples.json +1 -1
- package/dist/index.b57bcc0d.js +2 -0
- package/dist/index.b57bcc0d.js.map +1 -0
- package/docs/tsx-playground.md +2 -0
- package/package.json +3 -3
- package/dist/chunks/1541.907f10f3.js +0 -2
- package/dist/chunks/1541.907f10f3.js.map +0 -1
- package/dist/chunks/2143.633afe34.js +0 -2
- package/dist/chunks/2143.633afe34.js.map +0 -1
- package/dist/chunks/4957.b8513749.js +0 -3
- package/dist/chunks/4957.b8513749.js.map +0 -1
- package/dist/chunks/5084.e2a71dea.js +0 -2
- package/dist/chunks/5084.e2a71dea.js.map +0 -1
- package/dist/chunks/5521.17b56374.js.map +0 -1
- package/dist/chunks/7088.6f025161.js +0 -2
- package/dist/chunks/7088.6f025161.js.map +0 -1
- package/dist/chunks/main.1cd6e811.js +0 -2
- package/dist/chunks/tsx-playground.fbe922ef.js +0 -2
- package/dist/chunks/tsx-playground.fbe922ef.js.map +0 -1
- package/dist/index.735d5f6c.js +0 -2
- package/dist/index.735d5f6c.js.map +0 -1
- /package/dist/chunks/{4957.b8513749.js.LICENSE.txt → 3735.61433691.js.LICENSE.txt} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/1541.907f10f3.js","mappings":"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","sources":["webpack:///./src/tsx-playground/createPortal.ts","webpack:///./src/tsx-playground/styles.module.css?e933","webpack:///../../src/withBox.ts","webpack:///../../src/convertDataSources.ts","webpack:///../../src/convertVariables.ts","webpack:///../../src/expressions.ts","webpack:///../../src/convertEvents.ts","webpack:///../../../src/raw-data-generate/getMemberAccessor.ts","webpack:///../../../src/raw-data-generate/convert.ts","webpack:///../../src/findNearestCandidate.ts","webpack:///../../src/getModelObjectInstanceId.ts","webpack:///../../src/getPreGeneratedAttrViews.ts","webpack:///../../src/findObjectIdByUsedDataContexts.ts","webpack:///../../src/utils.ts","webpack:///../../src/deepReplaceVariables.ts","webpack:///../../../src/tsx-constructors/replaceVariables.ts","webpack:///../../src/convertTable.ts","webpack:///../../src/getPreGeneratedMetricGroups.ts","webpack:///../../src/convertDashboard.ts","webpack:///../../src/convertTemplates.ts","webpack:///../../src/convertComponent.ts","webpack:///../../src/convertList.ts","webpack:///../../src/convertDescriptions.ts","webpack:///../../src/convertCard.ts","webpack:///../../src/convertButton.ts","webpack:///../../src/convertForm.ts","webpack:///../../src/convertToolbar.ts","webpack:///../../src/convertModal.ts","webpack:///../../src/convertText.ts","webpack:///../../src/convertLink.ts","webpack:///../../src/convertOutput.ts","webpack:///../../src/convertTag.ts","webpack:///../../src/convertAvatar.ts","webpack:///../../src/convertAvatarGroup.ts","webpack:///../../src/convertCodeBlock.ts","webpack:///../../src/convertFormItem.ts","webpack:///../../src/convertForEach.ts","webpack:///../../src/convertIf.ts","webpack:///../../src/getViewTitle.ts","webpack:///../../../src/helpers/index.ts","webpack:///../../src/convertTsx.ts","webpack:///./src/tsx-playground/workers/tsxParser.ts","webpack:///./src/tsx-playground/styles.module.css"],"sourcesContent":["export function createPortal(rootId: string) {\n const portal = document.createElement(\"div\");\n portal.dataset.rootId = rootId;\n portal.style.position = \"absolute\";\n portal.style.width = portal.style.height = \"0\";\n document.body.append(portal);\n return portal;\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./styles.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./styles.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { BrickConf } from \"@next-core/types\";\nimport type { ConvertOptions } from \"./interfaces.js\";\n\nexport function withBox(\n children: BrickConf[] | undefined,\n options: ConvertOptions\n): BrickConf {\n return {\n brick: \"div\",\n properties: {\n style: options.expanded\n ? {\n background: \"rgba(255, 255, 255, 0.9)\",\n backdropFilter: \"blur(10px)\",\n borderRadius: \"16px\",\n padding: \"24px\",\n }\n : {\n background: \"var(--elevo-component-background)\",\n backdropFilter: \"var(--elevo-component-backdrop-filter)\",\n borderRadius: \"var(--elevo-border-radius)\",\n padding: \"16px\",\n },\n },\n children,\n };\n}\n","import type { ContextConf } from \"@next-core/types\";\nimport { isObject } from \"@next-core/utils/general\";\nimport type { DataSource } from \"@next-shared/tsx-parser\";\n\nexport function convertDataSources(dataSources: DataSource[]): ContextConf[] {\n return dataSources.map(\n ({\n name,\n http,\n api,\n params,\n tool,\n transform,\n rejectTransform,\n config,\n scope,\n }) => {\n const hasEnabled =\n config && Object.prototype.hasOwnProperty.call(config, \"enabled\");\n\n return {\n name: name,\n resolve: {\n ...(http\n ? {\n useProvider: \"basic.http-request\",\n args: [api, params],\n }\n : tool\n ? {\n useProvider: \"ai-portal.call-tool\",\n args: [tool, params],\n }\n : {\n useProvider: `${api}:*`,\n params: params as Record<string, unknown> | undefined,\n // TODO: remove the temporary workaround below\n ...(api === \"easyops.api.data_exchange.olap@Query\" &&\n isObject(params)\n ? {\n params: {\n ...params,\n translate: [\"#showKey\"],\n limit: undefined,\n limitBy: undefined,\n order: undefined,\n displayName: true,\n },\n }\n : null),\n }),\n ...(transform ? { transform: { value: transform } } : null),\n ...(rejectTransform\n ? { onReject: { transform: { value: rejectTransform } } }\n : null),\n ...(hasEnabled\n ? {\n if: config.enabled as string | boolean,\n }\n : null),\n },\n track: true,\n ...(hasEnabled\n ? {\n value: config.fallback,\n }\n : null),\n ...(scope === \"template\" ? { expose: false } : null),\n };\n }\n );\n}\n","import type { ContextConf } from \"@next-core/types\";\nimport type { Variable } from \"@next-shared/tsx-parser\";\n\nexport function convertVariables(variables: Variable[]): ContextConf[] {\n return variables.map(({ name, value, expose }) => ({\n name,\n value,\n expose,\n track: true,\n }));\n}\n","import { strictCollectMemberUsage } from \"@next-core/utils/storyboard\";\n\nconst EXPRESSION_PREFIX_REG = /^<%=?\\s/;\nconst EXPRESSION_SUFFIX_REG = /\\s%>$/;\n\n/**\n * @param value The trimmed string content\n * @returns if the value is a valid expression\n */\nfunction isExpression(value: string) {\n return EXPRESSION_PREFIX_REG.test(value) && EXPRESSION_SUFFIX_REG.test(value);\n}\n\nexport function parseDataSource(data: string | object):\n | {\n isString: false;\n embedded?: undefined;\n expression?: undefined;\n usedContexts?: undefined;\n }\n | {\n isString: true;\n embedded: string;\n expression: string;\n usedContexts: Set<string>;\n } {\n if (typeof data !== \"string\") {\n return {\n isString: false,\n };\n }\n\n let expression: string;\n const expr = data.trim();\n if (isExpression(expr)) {\n expression = expr\n .replace(EXPRESSION_PREFIX_REG, \"\")\n .replace(EXPRESSION_SUFFIX_REG, \"\")\n .trim();\n } else {\n // eslint-disable-next-line no-console\n console.warn(\"Invalid expression:\", JSON.stringify(data));\n expression = \"null\";\n }\n\n const usedContexts = strictCollectMemberUsage(data, \"CTX\");\n\n return {\n isString: true,\n embedded: data,\n expression,\n usedContexts,\n };\n}\n","import type { BrickEventHandler, BrickEventsMap } from \"@next-core/types\";\nimport type { Component, EventHandler } from \"@next-shared/tsx-parser\";\nimport type { ConvertOptions } from \"./interfaces.js\";\n\nexport function convertEvents(component: Component, options: ConvertOptions) {\n const events: BrickEventsMap = {};\n for (const [event, handler] of Object.entries(component.events ?? {})) {\n switch (component.name) {\n case \"Table\":\n switch (event) {\n case \"select\": {\n const action = convertEventHandlers(handler, options);\n if (action) {\n events[\"row.select.v2\"] = action;\n }\n break;\n }\n case \"sort\": {\n const action = convertEventHandlers(handler, options);\n if (action) {\n events[\"sort.change\"] = action;\n }\n break;\n }\n case \"paginate\": {\n const action = convertEventHandlers(handler, options);\n if (action) {\n events[\"page.change\"] = action;\n }\n break;\n }\n }\n break;\n case \"Button\":\n if (event === \"click\") {\n const action = convertEventHandlers(handler, options);\n if (action) {\n events.click = action;\n }\n }\n break;\n case \"Search\":\n if (event === \"search\") {\n const action = convertEventHandlers(handler, options);\n if (action) {\n events.search = action;\n }\n }\n break;\n case \"Select\":\n if (event === \"change\") {\n const action = convertEventHandlers(handler, options);\n if (action) {\n events[\"change.v2\"] = action;\n }\n }\n break;\n default: {\n const action = convertEventHandlers(handler, options);\n if (action) {\n events[event] = action;\n }\n }\n }\n }\n return Object.keys(events).length > 0 ? events : undefined;\n}\n\nfunction convertEventHandlers(\n handler: EventHandler | EventHandler[] | null,\n options: ConvertOptions\n): BrickEventHandler[] | undefined {\n if (!handler) {\n return;\n }\n const list = (Array.isArray(handler) ? handler : [handler])\n .map((hdl) => convertEventHandler(hdl, options))\n .filter(Boolean) as BrickEventHandler[];\n return list.length > 0 ? list : undefined;\n}\n\nfunction convertEventHandler(\n handler: EventHandler,\n options: ConvertOptions\n): BrickEventHandler | undefined {\n switch (handler?.action) {\n case \"update_variable\":\n return {\n action:\n handler.payload.scope === \"template\"\n ? \"state.update\"\n : \"context.replace\",\n args: [handler.payload.name, handler.payload.value],\n };\n case \"refresh_data_source\":\n return {\n action:\n handler.payload.scope === \"template\"\n ? \"state.refresh\"\n : \"context.refresh\",\n args: [handler.payload.name],\n };\n case \"call_api\": {\n const { api, http, tool, params } = handler.payload;\n\n const success = handler.callback?.success\n ? convertEventHandlers(\n handler.callback.success as EventHandler | EventHandler[],\n options\n )\n : undefined;\n\n return {\n ...(http\n ? {\n useProvider: \"basic.http-request\",\n args: [api, params],\n }\n : tool\n ? {\n useProvider: \"ai-portal.call-tool\",\n args: [tool, params],\n }\n : {\n useProvider: `${api}:*`,\n params,\n }),\n callback: {\n ...(success && { success }),\n error: {\n action: \"handleHttpError\",\n },\n },\n };\n }\n case \"call_component\":\n return {\n target: `[data-root-id=\"${options.rootId}\"] [data-component-id=\"${handler.payload.componentId}\"]`,\n method: handler.payload.method,\n args: handler.payload.args,\n };\n case \"call_ref\":\n return {\n ...(handler.payload.scope === \"template\"\n ? {\n targetRef: handler.payload.ref,\n }\n : {\n target: `[data-root-id=\"${options.rootId}\"] [data-ref=\"${handler.payload.ref}\"]`,\n }),\n method: handler.payload.method,\n args: handler.payload.args,\n };\n case \"update_query\":\n return {\n action:\n handler.payload.method === \"replace\"\n ? \"history.replaceQuery\"\n : \"history.pushQuery\",\n args: handler.payload.args,\n };\n case \"show_message\":\n return {\n action: `message.${handler.payload.type}` as \"message.info\",\n args: [handler.payload.content],\n };\n case \"dispatch_event\":\n return {\n action: \"tpl.dispatchEvent\",\n args: [handler.payload.type, { detail: handler.payload.detail }],\n };\n case \"conditional\":\n return {\n if: handler.payload.test,\n then: convertEventHandlers(handler.payload.consequent, options) ?? [],\n else: convertEventHandlers(handler.payload.alternate, options),\n };\n }\n}\n","const VALID_IDENTIFIER_REG = /^[$_\\p{ID_Start}][$\\p{ID_Continue}]*$/u;\n\nexport function getMemberAccessor(property: unknown): string {\n const propertyStr = String(property);\n return VALID_IDENTIFIER_REG.test(propertyStr)\n ? `.${propertyStr}`\n : `[${JSON.stringify(propertyStr)}]`;\n}\n","import type { BrickConf } from \"@next-core/types\";\nimport _ from \"lodash\";\nimport type { VisualConfig, VisualStyle } from \"./raw-data-interfaces.js\";\nimport { getMemberAccessor } from \"./getMemberAccessor.js\";\n\nconst { pick } = _;\n\nexport interface ConvertBrickOptions {\n ignoreStyle?: boolean;\n}\n\nexport function convertToStoryboard(\n config: VisualConfig,\n attr: string,\n options?: ConvertBrickOptions\n): BrickConf | null {\n return lowLevelConvertToStoryboard(config, getMemberAccessor(attr), options);\n}\n\nexport function lowLevelConvertToStoryboard(\n config: VisualConfig,\n attrAccessor: string,\n options?: ConvertBrickOptions\n): BrickConf | null {\n let brickItem: BrickConf;\n\n switch (config.display) {\n case \"link\":\n case \"text\": {\n brickItem = getPlainBrick(config, attrAccessor, options);\n if (config.type === \"struct-list\" && !config.countOnly) {\n brickItem = {\n brick: \"eo-tag\",\n // errorBoundary: true,\n children: [brickItem],\n };\n } else if (config.display === \"link\") {\n brickItem = {\n brick: \"eo-link\",\n // errorBoundary: true,\n children: [brickItem],\n };\n }\n break;\n }\n case \"tag\": {\n const colorSuffix =\n config.style?.variant === \"background\" ? \"-inverse\" : \"\";\n const valueAccessor = getValueAccessor(config, attrAccessor);\n brickItem = {\n brick: \"eo-tag\",\n // errorBoundary: true,\n properties: {\n textContent: `<% ${valueAccessor} %>`,\n size: getTagSize(config.style?.size),\n color: config.style?.background\n ? `${config.style.background}${colorSuffix}`\n : config.style?.palette\n ? `<%\n \\`\\${new Map(Object.entries(${JSON.stringify(\n config.style.palette,\n null,\n 2\n ).replaceAll(\"\\n\", \"\\n \")})).get(${valueAccessor}) ?? \"gray\"}${colorSuffix}\\`\n%>`\n : `gray${colorSuffix}`,\n outline: config.style?.variant === \"outline\",\n },\n };\n break;\n }\n case \"icon\": {\n brickItem = getIconBrick(config, attrAccessor, options);\n break;\n }\n case \"icon+text\": {\n const iconBrick = getIconBrick(config, attrAccessor, options);\n const textBrick = getPlainBrick(config, attrAccessor, options);\n brickItem = {\n brick: \"span\",\n // errorBoundary: true,\n properties: {\n style: {\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: \"0.5em\",\n },\n },\n children: [iconBrick, textBrick],\n };\n break;\n }\n default:\n return null;\n }\n\n if (config.type !== \"struct-list\" || config.countOnly) {\n return brickItem;\n }\n\n const maxItems = Number(config.maxItems) || 3;\n return {\n brick: \"span\",\n // errorBoundary: true,\n properties: {\n style: {\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: \"0.5em\",\n },\n },\n children: [\n {\n brick: \":forEach\",\n dataSource: `<% DATA${attrAccessor}.slice(0, ${maxItems}) %>`,\n children: [brickItem],\n },\n {\n brick: \"eo-link\",\n if: `<% DATA${attrAccessor}.length > ${maxItems} %>`,\n properties: {\n textContent: `<% \\`+ \\${DATA${attrAccessor}.length - ${maxItems}}\\` %>`,\n },\n },\n ],\n };\n}\n\nfunction getIconBrick(\n config: VisualConfig,\n attrAccessor: string,\n options?: ConvertBrickOptions\n): BrickConf {\n if (config.type === \"boolean\") {\n const valueAccessor = getValueAccessor(config, attrAccessor);\n const trueIcon = config.true?.icon ?? \"check\";\n const falseIcon = config.false?.icon ?? \"xmark\";\n const trueStyle = getPlainStyle(config.true?.style, options);\n const falseStyle = getPlainStyle(config.false?.style, options);\n return {\n brick: \"eo-icon\",\n // errorBoundary: true,\n properties: {\n lib: \"fa\",\n prefix: \"fas\",\n icon: `<% ${valueAccessor} ? ${JSON.stringify(trueIcon)} : ${JSON.stringify(falseIcon)} %>`,\n style: `<% ${valueAccessor} ? ${JSON.stringify(trueStyle)} : ${JSON.stringify(falseStyle)} %>`,\n },\n };\n }\n\n if (config.type === \"json\") {\n const valueAccessor = getValueAccessor(config, attrAccessor);\n return {\n brick: \"eo-icon\",\n // errorBoundary: true,\n properties: {\n lib: `<% ${valueAccessor}?.lib %>`,\n prefix: `<% ${valueAccessor}?.prefix %>`,\n category: `<% ${valueAccessor}?.category %>`,\n theme: `<% ${valueAccessor}?.theme %>`,\n icon: `<% ${valueAccessor}?.icon %>`,\n style: getPlainStyle(config.style, options),\n },\n };\n }\n\n return {\n brick: \"eo-icon\",\n // errorBoundary: true,\n properties: {\n lib: \"fa\",\n prefix: \"fas\",\n icon: config.icon,\n style: getPlainStyle(config.style, options),\n },\n };\n}\n\nfunction getPlainBrick(\n config: VisualConfig,\n attrAccessor: string,\n options?: ConvertBrickOptions\n): BrickConf {\n if (config.type === \"struct-list\" && config.countOnly) {\n return {\n brick: \"span\",\n properties: {\n textContent: `<% \\`\\${DATA${attrAccessor}.length}\\` %>`,\n },\n };\n }\n\n const valueAccessor = getValueAccessor(config, attrAccessor);\n const value = `<% ${valueAccessor} %>`;\n switch (config.formatter?.type) {\n case \"number\":\n return {\n brick: \"eo-formatter-number\",\n // errorBoundary: true,\n properties: {\n value,\n type: config.formatter.format,\n ...pick(config.formatter, [\n \"currency\",\n // \"unit\",\n \"originalUnit\",\n \"decimals\",\n \"thousandsSeparator\",\n ]),\n style: getPlainStyle(config.style, options),\n },\n };\n case \"date\":\n case \"date-time\":\n return {\n brick: \"eo-humanize-time\",\n // errorBoundary: true,\n properties: {\n value,\n type: config.type === \"date\" ? \"date\" : undefined,\n formatter: config.formatter.format,\n style: getPlainStyle(config.style, options),\n },\n };\n case \"cost-time\":\n return {\n brick: \"eo-humanize-time\",\n // errorBoundary: true,\n properties: {\n value,\n isCostTime: true,\n style: getPlainStyle(config.style, options),\n },\n };\n default: {\n let textContent: string | undefined;\n let style: Record<string, any> | string | undefined;\n let tag = \"span\";\n if (config.type === \"boolean\") {\n const trueContent = config.true?.text ?? \"Yes\";\n const falseContent = config.false?.text ?? \"No\";\n const trueStyle = getPlainStyle(config.true?.style, options);\n const falseStyle = getPlainStyle(config.false?.style, options);\n textContent = `<% ${valueAccessor} ? ${JSON.stringify(trueContent)} : ${JSON.stringify(falseContent)} %>`;\n style = `<% ${valueAccessor} ? ${JSON.stringify(trueStyle)} : ${JSON.stringify(falseStyle)} %>`;\n } else {\n style = getPlainStyle(config.style, options);\n if (config.type === \"json\") {\n if (config.display === \"link\") {\n textContent = `<% I18N(\"VIEW\", \"查看\") %>`;\n } else {\n tag = \"pre\";\n textContent = `<% PIPES.jsonStringify(${valueAccessor}) %>`;\n }\n } else {\n textContent = value;\n }\n }\n return {\n brick: tag,\n // errorBoundary: true,\n properties: {\n textContent,\n style,\n },\n };\n }\n }\n}\n\nfunction getValueAccessor(config: VisualConfig, attrAccessor: string): string {\n if (\n (config.type === \"struct\" || config.type === \"struct-list\") &&\n config.field\n ) {\n return `${config.type === \"struct\" ? `DATA${attrAccessor}` : \"ITEM\"}${getMemberAccessor(config.field)}`;\n }\n return `DATA${attrAccessor}`;\n}\n\nfunction getTagSize(size: VisualStyle[\"size\"]): string | undefined {\n switch (size) {\n case \"large\":\n case \"medium\":\n case \"small\":\n return size;\n case \"x-large\":\n return \"large\";\n // case \"x-small\":\n // return \"xs\";\n }\n}\n\nfunction getPlainStyle(\n configStyle: VisualStyle | undefined,\n options?: ConvertBrickOptions\n): Record<string, any> | undefined {\n if (!configStyle || options?.ignoreStyle) {\n return;\n }\n const style: Record<string, any> = {};\n switch (configStyle.size) {\n // case \"x-small\":\n case \"small\":\n style.fontSize = \"var(--sub-title-font-size-small)\";\n break;\n case \"medium\":\n style.fontSize = \"var(--normal-font-size)\";\n break;\n case \"large\":\n style.fontSize = \"var(--card-title-font-size)\";\n break;\n case \"x-large\":\n style.fontSize = \"var(--title-font-size-larger)\";\n break;\n }\n switch (configStyle.fontWeight) {\n case \"bold\":\n case \"normal\":\n style.fontWeight = configStyle.fontWeight;\n }\n if (configStyle.color) {\n style.color = configStyle.color;\n }\n return style;\n}\n","export default function findNearestCandidate<\n T extends { visualWeight: number },\n>(candidates: T[] | undefined, weight: number): T | undefined {\n const candidate = candidates?.reduce((nearest, candidate) => {\n if (\n !nearest ||\n Math.abs(candidate.visualWeight - weight) <\n Math.abs(nearest.visualWeight - weight)\n ) {\n return candidate;\n }\n return nearest;\n });\n return candidate;\n}\n","import { InstanceApi_postSearchV3 } from \"@next-api-sdk/cmdb-sdk\";\n\nconst cache = new Map<string, Promise<string | null>>();\n\nexport async function getModelObjectInstanceId(objectId: string) {\n if (cache.has(objectId)) {\n return cache.get(objectId)!;\n }\n\n const promise = doGetModelObjectInstanceId(objectId);\n cache.set(objectId, promise);\n return promise;\n}\n\nasync function doGetModelObjectInstanceId(objectId: string) {\n const { list } = await InstanceApi_postSearchV3(\"MODEL_OBJECT\", {\n fields: [\"instanceId\"],\n query: {\n objectId: {\n $eq: objectId,\n },\n },\n page_size: 1,\n });\n\n if (list?.length) {\n return list[0].instanceId;\n }\n\n return null;\n}\n","import { InstanceApi_getDetail } from \"@next-api-sdk/cmdb-sdk\";\nimport findNearestCandidate from \"./findNearestCandidate.js\";\nimport { getModelObjectInstanceId } from \"./getModelObjectInstanceId.js\";\n\nconst cache = new Map<string, Promise<Map<string, any>>>();\n\nconst attrListCache = new Map<string, any>();\n\nexport async function getPreGeneratedAttrViews(\n objectId: string,\n visualWeight?: number\n) {\n if (cache.has(objectId)) {\n return cache.get(objectId)!;\n }\n\n const promise = doGetPreGeneratedAttrViews(objectId, visualWeight);\n cache.set(objectId, promise);\n return promise;\n}\n\nasync function doGetPreGeneratedAttrViews(\n objectId: string,\n visualWeight?: number\n) {\n const attrViews = new Map<string, any>();\n\n try {\n const attrList = await getAttrList(objectId);\n if (attrList) {\n for (const attr of attrList) {\n const candidates = attr.generatedView?.[0]?.list;\n const select = findNearestCandidate(candidates, visualWeight ?? 0);\n if (select) {\n attrViews.set(attr.id, select);\n }\n }\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(\"Error fetching pre-generated attr views:\", e);\n }\n\n return attrViews;\n}\n\nasync function getAttrList(objectId: string) {\n if (attrListCache.has(objectId)) {\n return attrListCache.get(objectId)!;\n }\n\n const promise = doGetAttrList(objectId);\n attrListCache.set(objectId, promise);\n return promise;\n}\n\nasync function doGetAttrList(objectId: string) {\n const instanceId = await getModelObjectInstanceId(objectId);\n if (!instanceId) {\n return null;\n }\n\n const fields = [\"attrList.id\", \"attrList.generatedView.list\"].join(\",\");\n\n const { attrList } = await InstanceApi_getDetail(\"MODEL_OBJECT\", instanceId, {\n fields,\n });\n\n return attrList;\n}\n","import { strictCollectMemberUsage } from \"@next-core/utils/storyboard\";\nimport type { DataSource, Variable } from \"@next-shared/tsx-parser\";\n\n/**\n * Find the object ID associated with the used data contexts.\n *\n * This function traverses the used contexts along their dependency chain.\n */\nexport function findObjectIdByUsedDataContexts(\n usedContexts: Set<string> | undefined,\n dataSources: DataSource[] | undefined,\n variables: Variable[] | undefined\n) {\n let objectId: string | undefined;\n if (usedContexts?.size && dataSources?.length) {\n const dataSourceToObjectIdMap = new Map<string, string>();\n for (const dataSource of dataSources) {\n if (dataSource.objectId) {\n dataSourceToObjectIdMap.set(dataSource.name, dataSource.objectId);\n }\n }\n\n const variableDepsMap = new Map<string, Set<string>>();\n for (const variable of variables ?? []) {\n const deps = strictCollectMemberUsage(variable.value, \"CTX\");\n variableDepsMap.set(variable.name, deps);\n }\n\n const processedContexts = new Set<string>();\n\n const find = (context: string) => {\n if (processedContexts.has(context)) {\n return false;\n }\n processedContexts.add(context);\n\n const dataSourceObjectId = dataSourceToObjectIdMap.get(context);\n if (dataSourceObjectId) {\n objectId = dataSourceObjectId;\n return true;\n }\n\n const variableDeps = variableDepsMap.get(context);\n for (const dep of variableDeps ?? []) {\n if (find(dep)) {\n return true;\n }\n }\n\n return false;\n };\n\n for (const context of usedContexts) {\n if (find(context)) {\n break;\n }\n }\n }\n\n return objectId;\n}\n","import * as t from \"@babel/types\";\n\nconst EXPRESSION_PREFIX_REG = /^<%=?\\s/;\nconst EXPRESSION_SUFFIX_REG = /\\s%>$/;\n\nexport function isExpressionString(value: unknown): value is string {\n if (typeof value !== \"string\") {\n return false;\n }\n const trimmed = value.trim();\n return (\n EXPRESSION_PREFIX_REG.test(trimmed) && EXPRESSION_SUFFIX_REG.test(trimmed)\n );\n}\n\nexport function validateExpression(expr: t.Expression): t.Node | null {\n let invalidNode: t.Node | null = null;\n t.traverse(expr, {\n enter(node, parent) {\n if (\n !invalidNode &&\n (t.isFunctionExpression(node) ||\n t.isStatement(node) ||\n t.isJSX(node) ||\n (t.isArrowFunctionExpression(node) &&\n (t.isBlockStatement(node.body) ||\n t.isObjectProperty(parent[parent.length - 1]?.node))))\n ) {\n invalidNode = node;\n }\n },\n });\n return invalidNode;\n}\n\nexport function isNilNode(node: t.Node) {\n return (\n t.isNullLiteral(node) || (t.isIdentifier(node) && node.name === \"undefined\")\n );\n}\n\nexport function containsJsxNode(expr: t.Expression): boolean {\n let found = false;\n t.traverse(expr, {\n enter(node) {\n if (!found && (t.isJSXElement(node) || t.isJSXFragment(node))) {\n found = true;\n }\n },\n });\n return found;\n}\n\nexport function convertJsxEventAttr(attr: string): string {\n return attr\n .slice(2)\n .replace(/([a-z])([A-Z])/g, \"$1.$2\")\n .toLowerCase();\n}\n","import { isExpressionString, replaceVariables } from \"@next-shared/tsx-parser\";\n\nexport function deepReplaceVariables<T>(\n value: T,\n patterns: Map<string, string> | undefined\n): T {\n if (!patterns?.size) {\n return value;\n }\n\n if (Array.isArray(value)) {\n return value.map((item) =>\n deepReplaceVariables(item, patterns)\n ) as unknown as T;\n }\n\n if (typeof value === \"object\" && value !== null) {\n return Object.fromEntries(\n Object.entries(value).map(([k, v]) => [\n k,\n deepReplaceVariables(v, patterns),\n ])\n ) as T;\n }\n\n if (typeof value === \"string\" && isExpressionString(value)) {\n return replaceVariables(value, patterns) as unknown as T;\n }\n\n return value;\n}\n","import * as t from \"@babel/types\";\nimport {\n precookFunction,\n preevaluate,\n type PreevaluateResult,\n type PrecookFunctionResult,\n} from \"@next-core/cook\";\nimport type { ParseResult } from \"../interfaces.js\";\n\ninterface Replacement {\n id: t.Identifier;\n shorthand?: boolean;\n}\n\nexport function replaceGlobals(expr: string, result: ParseResult): string {\n const patterns = new Map([\n ...(result.templateCollection\n ? result.templateCollection.identifiers.map(\n (k) => [k, `STATE.${k}`] as const\n )\n : result.contexts.map((k) => [k, `CTX.${k}`] as const)),\n ...result.functionNames.map((k) => [k, `FN.${k}`] as const),\n ...result.globals.entries(),\n ]);\n return replaceVariables(expr, patterns);\n}\n\nexport function replaceGlobalsInFunction(\n source: string,\n result: ParseResult,\n selfName: string\n): string {\n const patterns = new Map(\n result.functionNames\n .filter((name) => name !== selfName)\n .map((k) => [k, `FN.${k}`])\n );\n return replaceVariablesInFunction(source, patterns);\n}\n\nexport function replaceVariables(\n expr: string,\n patterns: Map<string, string> | undefined\n): string {\n if (!patterns?.size) {\n return expr;\n }\n const keywords = [...patterns.keys()];\n if (keywords.some((k) => expr.includes(k))) {\n const replacements: Replacement[] = [];\n let result: PreevaluateResult | undefined;\n try {\n result = preevaluate(expr, {\n withParent: true,\n hooks: {\n beforeVisitGlobal(node, path) {\n if (patterns.has(node.name)) {\n const p = path![path!.length - 1]?.node;\n let shorthand: boolean | undefined;\n if (p && p.type === \"Property\" && !p.computed && p.shorthand) {\n shorthand = true;\n }\n replacements.push({ id: node, shorthand });\n }\n },\n },\n });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Parse expression failed:\", error);\n }\n if (replacements.length > 0 && result) {\n const { prefix, source, suffix } = result;\n const chunks: string[] = [];\n let prevStart = 0;\n for (let i = 0; i < replacements.length; i++) {\n const { id, shorthand } = replacements[i];\n const { name, start, end } = id;\n chunks.push(\n source.substring(prevStart, start!),\n `${shorthand ? `${name}: ` : \"\"}${patterns.get(name)}`\n );\n prevStart = end!;\n }\n chunks.push(source.substring(prevStart));\n return `${prefix}${chunks.join(\"\")}${suffix}`;\n }\n }\n return expr;\n}\n\nfunction replaceVariablesInFunction(\n source: string,\n patterns: Map<string, string> | undefined\n): string {\n if (!patterns?.size) {\n return source;\n }\n const keywords = [...patterns.keys()];\n if (keywords.some((k) => source.includes(k))) {\n const replacements: Replacement[] = [];\n let result: PrecookFunctionResult | undefined;\n try {\n result = precookFunction(source, {\n withParent: true,\n hooks: {\n beforeVisitGlobal(node, parent) {\n if (patterns.has(node.name)) {\n const p = parent![parent!.length - 1]?.node;\n let shorthand: boolean | undefined;\n if (p && p.type === \"Property\" && !p.computed && p.shorthand) {\n shorthand = true;\n }\n replacements.push({ id: node, shorthand });\n }\n },\n },\n });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Parse function failed:\", error);\n }\n if (replacements.length > 0 && result) {\n const chunks: string[] = [];\n let prevStart = 0;\n for (let i = 0; i < replacements.length; i++) {\n const { id, shorthand } = replacements[i];\n const { name, start, end } = id;\n chunks.push(\n source.substring(prevStart, start!),\n `${shorthand ? `${name}: ` : \"\"}${patterns.get(name)}`\n );\n prevStart = end!;\n }\n chunks.push(source.substring(prevStart));\n return chunks.join(\"\");\n }\n }\n return source;\n}\n","import type { BrickConf } from \"@next-core/types\";\nimport type {\n Component,\n ParseResult,\n RenderUseBrick,\n} from \"@next-shared/tsx-parser\";\nimport type { TableColumn, TableProps } from \"../lib/components.js\";\nimport type { ConvertOptions } from \"./interfaces.js\";\nimport { lowLevelConvertToStoryboard } from \"./raw-data-generate/convert.js\";\nimport { parseDataSource } from \"./expressions.js\";\nimport { getPreGeneratedAttrViews } from \"./getPreGeneratedAttrViews.js\";\nimport { findObjectIdByUsedDataContexts } from \"./findObjectIdByUsedDataContexts.js\";\nimport { convertComponent } from \"./convertComponent.js\";\nimport { deepReplaceVariables } from \"./deepReplaceVariables.js\";\n\nconst columnUseBrickParams = [\"cellData\", \"rowData\"];\n\nexport default async function convertTable(\n component: Component,\n view: ParseResult,\n options: ConvertOptions,\n scope: \"view\" | \"template\"\n): Promise<BrickConf> {\n const { properties } = component;\n const { dataSource, size, columns, rowKey, pagination, ...restProps } =\n properties as Omit<TableProps<object>, \"dataSource\" | \"columns\"> & {\n dataSource: string | object;\n size?: \"small\" | \"medium\" | \"large\";\n pagination?: boolean;\n columns:\n | string\n | Array<\n Omit<TableColumn<object>, \"render\"> & {\n render?: RenderUseBrick;\n }\n >;\n };\n\n const parsedDataSource = parseDataSource(dataSource);\n\n const objectId = findObjectIdByUsedDataContexts(\n parsedDataSource.usedContexts,\n view.dataSources,\n view.variables\n );\n\n const attrViews = objectId\n ? await getPreGeneratedAttrViews(objectId)\n : undefined;\n\n const configuredColumns = new Map<string, BrickConf>();\n\n if (attrViews?.size && Array.isArray(columns)) {\n for (const column of columns) {\n if (column.render || typeof column.dataIndex !== \"string\") {\n continue;\n }\n const candidate = attrViews.get(column.dataIndex);\n if (candidate) {\n const brick = lowLevelConvertToStoryboard(candidate, \".cellData\");\n if (brick) {\n brick.slot = `[${column.dataIndex}]`;\n configuredColumns.set(column.dataIndex, brick);\n }\n }\n }\n }\n\n const convertedColumns = Array.isArray(columns)\n ? await Promise.all(\n columns.map(async ({ render, ...column }) => {\n if (render) {\n const patterns = new Map<string, string>();\n for (\n let i = 0;\n i < render.params.length && i < columnUseBrickParams.length;\n i++\n ) {\n patterns.set(render.params[i], `DATA.${columnUseBrickParams[i]}`);\n }\n\n const useBrick = (\n await Promise.all(\n render.children.map((child) =>\n convertComponent(child, view, options, scope)\n )\n )\n ).flatMap((child) => deepReplaceVariables(child, patterns));\n\n return {\n ...column,\n useBrick: useBrick.map((item) =>\n item.brick.startsWith(\":\")\n ? {\n brick: \"div\",\n children: [item],\n }\n : item\n ),\n };\n }\n return typeof column.dataIndex === \"string\" &&\n configuredColumns.has(column.dataIndex)\n ? {\n ...column,\n useChildren: `[${column.dataIndex}]`,\n }\n : column;\n })\n )\n : columns;\n\n return {\n brick: \"eo-next-table\",\n properties: {\n dataSource: parsedDataSource.isString\n ? parsedDataSource.embedded\n : dataSource,\n ...restProps,\n rowKey: rowKey ?? (Array.isArray(columns) ? columns[0]?.key : undefined),\n columns: convertedColumns,\n themeVariant: \"elevo\",\n scrollConfig: {\n x: \"max-content\",\n },\n ...(options.expanded\n ? {\n bordered: true,\n pagination,\n size: \"large\",\n }\n : {\n size: \"middle\",\n pagination: false,\n }),\n },\n children:\n configuredColumns.size > 0 ? Array.from(configuredColumns.values()) : [],\n };\n}\n","import { InstanceApi_getDetail } from \"@next-api-sdk/cmdb-sdk\";\nimport { getModelObjectInstanceId } from \"./getModelObjectInstanceId.js\";\n\nconst cache = new Map<string, Promise<MetricWithGroup[]>>();\n\nexport interface MetricWithGroup {\n group: string;\n metrics: string[];\n counter?: string;\n}\n\nexport async function getPreGeneratedMetricGroups(objectId: string) {\n if (cache.has(objectId)) {\n return cache.get(objectId)!;\n }\n\n const promise = doGetPreGeneratedMetricGroups(objectId);\n cache.set(objectId, promise);\n return promise;\n}\n\nasync function doGetPreGeneratedMetricGroups(objectId: string) {\n let metricGroups: MetricWithGroup[] = [];\n\n try {\n const instanceId = await getModelObjectInstanceId(objectId);\n if (instanceId) {\n const fields = [\"metricGroups\"].join(\",\");\n\n const { metricGroups: groups } = await InstanceApi_getDetail(\n \"MODEL_OBJECT\",\n instanceId,\n {\n fields,\n }\n );\n\n if (Array.isArray(groups) && groups.length) {\n metricGroups = groups;\n }\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(\"Error fetching pre-generated metric groups:\", e);\n }\n\n return metricGroups;\n}\n","import type { BrickConf } from \"@next-core/types\";\nimport type { Component, ParseResult } from \"@next-shared/tsx-parser\";\nimport type { DashboardProps, DashboardWidget } from \"../lib/components.js\";\nimport { parseDataSource } from \"./expressions.js\";\nimport { findObjectIdByUsedDataContexts } from \"./findObjectIdByUsedDataContexts.js\";\nimport { getPreGeneratedMetricGroups } from \"./getPreGeneratedMetricGroups.js\";\nimport type { ConvertOptions } from \"./interfaces.js\";\n\nconst COLORS = [\n \"#336EF4\",\n \"#45CAFF\",\n \"#41CDCF\",\n \"#8146F3\",\n \"#F8A075\",\n \"#94E65E\",\n \"#57689C\",\n \"#C285EF\",\n \"#FAC60B\",\n \"#E4551F\",\n \"#8984FF\",\n \"#2540FF\",\n \"#08BF33\",\n \"#F7811C\",\n \"#AC7CFF\",\n \"#1BA5DC\",\n \"#E89716\",\n \"#76A6F5\",\n \"#4F69FF\",\n];\n\ninterface MergedWidget extends DashboardWidget {\n relevantMetrics?: string[];\n counterMetric?: string;\n groupTitle?: string;\n size?: \"small\" | \"medium\" | \"large\";\n}\n\nexport default async function convertDashboard(\n { properties }: Component,\n view: ParseResult,\n options: ConvertOptions\n): Promise<BrickConf> {\n const {\n dataSource,\n groupField: _groupField,\n widgets,\n } = properties as Omit<DashboardProps, \"dataSource\"> & {\n dataSource: string | object;\n };\n\n view.usedHelpers.add(\"_helper_getLatestMetricValue\");\n view.usedHelpers.add(\"_helper_extractList\");\n view.usedHelpers.add(\"_helper_groupMetricData\");\n view.usedHelpers.add(\"_helper_getMetricDisplayNames\");\n\n const groupField = _groupField ? \"#showKey\" : undefined;\n\n const { isString, expression, usedContexts } = parseDataSource(dataSource);\n\n const chartData = isString\n ? `<%= FN._helper_extractList((${expression})) %>`\n : dataSource;\n\n if (options.expanded) {\n let mergedWidgets = widgets as MergedWidget[];\n const objectId = findObjectIdByUsedDataContexts(\n usedContexts,\n view.dataSources,\n view.variables\n );\n const metricGroups = objectId\n ? await getPreGeneratedMetricGroups(objectId)\n : [];\n\n if (metricGroups.length > 0) {\n mergedWidgets = [];\n const mergedMetrics = new Set<string>();\n const metricIds = new Set(widgets.map((w) => w.metric.id));\n for (const widget of widgets) {\n if (mergedMetrics.has(widget.metric.id)) {\n continue; // Skip already merged metrics\n }\n const mergedWidget = { ...widget } as MergedWidget;\n mergedWidgets.push(mergedWidget);\n const group = metricGroups.find((g) =>\n g.metrics.includes(widget.metric.id)\n );\n if (group) {\n const relevantMetrics = group.metrics.filter((m) => metricIds.has(m));\n if (relevantMetrics.length > 1) {\n mergedWidget.relevantMetrics = relevantMetrics;\n mergedWidget.counterMetric = group.counter;\n mergedWidget.groupTitle = group.group;\n for (const metricId of relevantMetrics) {\n mergedMetrics.add(metricId);\n metricIds.delete(metricId);\n }\n }\n }\n }\n }\n\n let colorCursor = 0;\n\n return {\n brick: \"div\",\n properties: {\n style: {\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fit, minmax(500px, 1fr))\",\n gap: \"16px\",\n },\n },\n children: mergedWidgets.map((widget) => {\n const { title, /* type, */ metric, size, precision } = widget;\n const colorCount =\n widget.relevantMetrics?.length ?? (groupField ? 2 : 1);\n const colors = Array.from(\n { length: colorCount },\n (_, i) => COLORS[(colorCursor + i) % COLORS.length]\n );\n colorCursor += colorCount;\n const unit = metric.unit === \"load\" ? \"\" : metric.unit;\n const chart = {\n brick: \"chart-v2.time-series-chart\",\n properties: {\n data: chartData,\n xField: \"time\",\n ...(widget.relevantMetrics\n ? {\n // yFields: widget.relevantMetrics,\n yFields: `<% FN._helper_getMetricDisplayNames((${expression}).displayNameList, ${JSON.stringify(\n widget.relevantMetrics\n )}) %>`,\n }\n : {\n // yField: metric.id,\n yField: `<% FN._helper_getMetricDisplayNames((${expression}).displayNameList, [${JSON.stringify(\n metric.id\n )}])[0] %>`,\n }),\n ...(widget.counterMetric\n ? {\n forceAbsoluteNumbers: true,\n series: {\n [widget.counterMetric]: {\n isNegative: true,\n },\n },\n }\n : null),\n height: size === \"large\" ? 230 : 200,\n timeFormat: \"HH:mm\",\n ...(widget.relevantMetrics || groupField\n ? null\n : {\n areaOptions: {\n style: {\n fill: `l(90) 0:${colors[0]} 1:#ffffff`,\n },\n },\n }),\n axis: {\n yAxis: {\n unit,\n precision,\n ...(widget.counterMetric\n ? null\n : unit === \"percent(1)\"\n ? { min: 0, max: 1 }\n : unit === \"percent(100)\" || unit === \"%\"\n ? { min: 0, max: 100 }\n : { min: 0 }),\n shape: \"smooth\",\n },\n },\n groupField,\n areaShape: \"smooth\",\n legends: !!(widget.relevantMetrics || groupField),\n colors: colors,\n tooltip: {\n marker: {\n fill: colors[0],\n stroke: \"#fff\",\n lineWidth: 2,\n shadowColor: colors[0],\n shadowBlur: 8,\n shadowOffsetX: 0,\n shadowOffsetY: 4,\n },\n domStyles: {\n \"g2-tooltip\": {\n background: [\n `radial-gradient( farthest-corner at -20px 150px, ${colors[0]} 0%, rgba(238,238,238,0) 60%)`,\n \"linear-gradient( 180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.8) 100%)\",\n ].join(\", \"),\n boxShadow: `0px 4px 8px 0px ${convertHexColorToRGBA(colors[0], 0.08)}`,\n borderRadius: \"8px\",\n border: \"1px solid rgba(255,255,255,1)\",\n backdropFilter: \"blur(3px)\",\n },\n },\n },\n },\n };\n return {\n brick: \"div\",\n properties: {\n style: {\n background: \"rgba(255,255,255,0.8)\",\n boxShadow: \"0px 2px 4px 0px rgba(0,0,0,0.06)\",\n borderRadius: \"8px\",\n padding: \"16px 20px 20px\",\n },\n },\n children: [\n {\n brick: \"div\",\n properties: {\n style: {\n fontSize: \"16px\",\n fontWeight: \"500\",\n marginBottom: \"20px\",\n },\n textContent: widget.groupTitle || title || metric.id,\n },\n },\n chart,\n ],\n };\n }),\n };\n }\n\n if (groupField) {\n return {\n brick: \"div\",\n properties: {\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"8px\",\n },\n },\n children: [\n {\n brick: \":forEach\",\n dataSource: `<%= FN._helper_groupMetricData(FN._helper_extractList((${expression})), ${JSON.stringify(groupField)}) %>`,\n children: [\n {\n brick: \"div\",\n properties: {\n textContent: \"<% `${ITEM.group}:` %>\",\n style: {\n fontWeight: \"500\",\n },\n },\n },\n {\n brick: \"div\",\n properties: {\n style: {\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fill, minmax(200px, 1fr))\",\n gap: \"10px\",\n marginBottom: \"8px\",\n },\n },\n children: widgets.map((widget, i) => {\n const { title, /* type, */ metric, precision } = widget;\n return {\n brick: \"ai-portal.stat-with-mini-chart\",\n properties: {\n size: \"small\",\n label: title || metric.id,\n data: \"<% ITEM.list %>\",\n xField: \"time\",\n yField: metric.id,\n lineColor: COLORS[i % COLORS.length],\n showArea: true,\n ...(metric.unit === \"percent(1)\"\n ? { min: 0, max: 1 }\n : metric.unit === \"percent(100)\" || metric.unit === \"%\"\n ? { min: 0, max: 100 }\n : { min: 0 }),\n value: `<%= FN._helper_getLatestMetricValue(ITEM.list, ${JSON.stringify(\n {\n metric,\n precision,\n }\n )}) %>`,\n },\n };\n }),\n },\n ],\n },\n ],\n };\n }\n\n return {\n brick: \"div\",\n properties: {\n style: {\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fill, minmax(200px, 1fr))\",\n gap: \"10px\",\n },\n },\n children: widgets.map((widget, i) => {\n const { title, /* type, */ metric, precision } = widget;\n return {\n brick: \"ai-portal.stat-with-mini-chart\",\n properties: {\n size: \"small\",\n label: title || metric.id,\n data: chartData,\n xField: \"time\",\n yField: metric.id,\n lineColor: COLORS[i % COLORS.length],\n showArea: true,\n ...(metric.unit === \"percent(1)\"\n ? { min: 0, max: 1 }\n : metric.unit === \"percent(100)\" || metric.unit === \"%\"\n ? { min: 0, max: 100 }\n : { min: 0 }),\n value: `<%= FN._helper_getLatestMetricValue((${\n isString\n ? `FN._helper_extractList((${expression}))`\n : JSON.stringify(dataSource ?? null)\n }), ${JSON.stringify({\n metric,\n precision,\n })}) %>`,\n },\n };\n }),\n };\n}\n\nfunction convertHexColorToRGBA(color: string, alpha: number): string {\n const hex = color.slice(1);\n const bigint = parseInt(hex, 16);\n const r = (bigint >> 16) & 255;\n const g = (bigint >> 8) & 255;\n const b = bigint & 255;\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n}\n","import type { ParseResult, Template } from \"@next-shared/tsx-parser\";\nimport type { ConvertOptions } from \"./interfaces.js\";\nimport type { CustomTemplate } from \"@next-core/types\";\nimport { convertComponent } from \"./convertComponent.js\";\nimport { convertDataSources } from \"./convertDataSources.js\";\nimport { convertVariables } from \"./convertVariables.js\";\n\nlet counter = 0;\nconst tplNameMap = new Map<string, string>();\n\nexport function getTplNamePrefixByRootId(rootId: string) {\n if (!tplNameMap.has(rootId)) {\n tplNameMap.set(rootId, `isolated-tpl-${counter++}`);\n }\n return tplNameMap.get(rootId)!;\n}\n\nexport function getTplNameSuffix(name: string) {\n return name.replace(/([A-Z])/g, \"-$1\").toLowerCase();\n}\n\nexport function convertTemplates(\n templates: Template[],\n result: ParseResult,\n options: ConvertOptions\n): Promise<CustomTemplate[]> {\n const tplNamePrefix = getTplNamePrefixByRootId(options.rootId);\n return Promise.all(\n templates.map(async (tpl) => {\n const children = (\n await Promise.all(\n tpl.components.map((component) =>\n convertComponent(component, result, options, \"template\")\n )\n )\n ).flat();\n return {\n name: `${tplNamePrefix}${getTplNameSuffix(tpl.name)}`,\n bricks: children,\n state: [\n ...convertDataSources(tpl.dataSources ?? []),\n ...convertVariables(tpl.variables ?? []),\n ],\n } as CustomTemplate;\n })\n );\n}\n","import type { BrickConf } from \"@next-core/types\";\nimport type { Component, ParseResult } from \"@next-shared/tsx-parser\";\nimport convertList from \"./convertList.js\";\nimport type { ConvertOptions } from \"./interfaces.js\";\nimport { convertEvents } from \"./convertEvents.js\";\nimport convertTable from \"./convertTable.js\";\nimport convertDescriptions from \"./convertDescriptions.js\";\nimport convertDashboard from \"./convertDashboard.js\";\nimport convertButton from \"./convertButton.js\";\nimport convertForm from \"./convertForm.js\";\nimport convertFormItem from \"./convertFormItem.js\";\nimport convertModal from \"./convertModal.js\";\nimport convertToolbar from \"./convertToolbar.js\";\nimport convertText from \"./convertText.js\";\nimport convertCard from \"./convertCard.js\";\nimport convertForEach from \"./convertForEach.js\";\nimport convertIf from \"./convertIf.js\";\nimport convertOutput from \"./convertOutput.js\";\nimport convertLink from \"./convertLink.js\";\nimport convertTag from \"./convertTag.js\";\nimport convertAvatar from \"./convertAvatar.js\";\nimport convertAvatarGroup from \"./convertAvatarGroup.js\";\nimport {\n getTplNamePrefixByRootId,\n getTplNameSuffix,\n} from \"./convertTemplates.js\";\nimport convertCodeBlock from \"./convertCodeBlock.js\";\n\nexport async function convertComponent(\n component: Component,\n result: ParseResult,\n options: ConvertOptions,\n scope: \"view\" | \"template\"\n): Promise<BrickConf | BrickConf[]> {\n let brick: BrickConf | null = null;\n const tpl = result.templates.find((t) => t.name === component.name);\n if (tpl) {\n brick = {\n brick: `${getTplNamePrefixByRootId(options.rootId)}${getTplNameSuffix(tpl.name)}`,\n properties: component.properties,\n };\n } else {\n switch (component.name) {\n case \"List\":\n brick = await convertList(component);\n break;\n case \"Table\":\n brick = await convertTable(component, result, options, scope);\n break;\n case \"Descriptions\":\n brick = await convertDescriptions(component, result, options, scope);\n break;\n case \"Card\":\n brick = await convertCard(component);\n break;\n case \"Dashboard\":\n brick = await convertDashboard(component, result, options);\n break;\n case \"Button\":\n brick = await convertButton(component);\n break;\n case \"Form\":\n brick = await convertForm(component);\n break;\n case \"Toolbar\":\n brick = await convertToolbar(component);\n break;\n case \"Modal\":\n brick = await convertModal(component);\n break;\n case \"Plaintext\":\n brick = await convertText(component);\n break;\n case \"Link\":\n brick = await convertLink(component);\n break;\n case \"Output\":\n brick = await convertOutput(component);\n break;\n case \"Tag\":\n brick = await convertTag(component);\n break;\n case \"Avatar\":\n brick = await convertAvatar(component);\n break;\n case \"AvatarGroup\":\n brick = await convertAvatarGroup(component);\n break;\n case \"CodeBlock\":\n brick = await convertCodeBlock(component);\n break;\n case \"Search\":\n case \"Input\":\n case \"NumberInput\":\n case \"Textarea\":\n case \"Select\":\n case \"Radio\":\n case \"Checkbox\":\n case \"Switch\":\n case \"DatePicker\":\n case \"TimePicker\":\n brick = await convertFormItem(\n component,\n convertComponentName(component.name)\n );\n break;\n case \"ForEach\":\n brick = await convertForEach(component);\n break;\n case \"If\":\n brick = await convertIf(component);\n break;\n default:\n // eslint-disable-next-line no-console\n console.error(\"Unsupported component:\", component.name);\n }\n }\n\n if (!brick) {\n return [];\n }\n\n // Set [data-component-id] for the brick\n if (component.componentId) {\n brick.properties ??= {};\n brick.properties.dataset ??= {};\n (brick.properties.dataset as Record<string, string>).componentId =\n component.componentId;\n }\n\n if (component.ref) {\n if (scope === \"template\") {\n (brick as { ref?: string }).ref = component.ref;\n } else {\n brick.properties ??= {};\n brick.properties.dataset ??= {};\n (brick.properties.dataset as Record<string, string>).ref = component.ref;\n }\n }\n\n if (component.slot) {\n brick.slot = component.slot;\n }\n\n brick.events = convertEvents(component, options);\n\n if (component.children?.length) {\n brick.children = (\n await Promise.all(\n component.children.map((child) =>\n convertComponent(child, result, options, scope)\n )\n )\n ).flat();\n\n if (\n (component.name === \"Card\" || component.name === \"Modal\") &&\n brick.children.length > 0\n ) {\n brick.children = [\n {\n brick: \"eo-content-layout\",\n children: brick.children,\n },\n ];\n }\n }\n\n return brick;\n}\n\nfunction convertComponentName(name: string) {\n return name.includes(\"-\")\n ? name\n : `eo${name.replace(/([A-Z])/g, \"-$1\").toLowerCase()}`;\n}\n","import type { BrickConf } from \"@next-core/types\";\nimport type { Component } from \"@next-shared/tsx-parser\";\nimport type { ListProps } from \"../lib/components.js\";\nimport { parseDataSource } from \"./expressions.js\";\n\nexport default function convertList({ properties }: Component): BrickConf {\n const props = properties as Omit<ListProps, \"dataSource\"> & {\n dataSource: string | object;\n };\n\n const { dataSource, fields, variant } = props;\n\n const parsedDataSource = parseDataSource(dataSource);\n\n return {\n brick: \"eo-list\",\n properties: {\n variant,\n dataSource: parsedDataSource.isString\n ? parsedDataSource.embedded\n : dataSource,\n fields,\n themeVariant: \"elevo\",\n },\n };\n}\n","import type { BrickConf } from \"@next-core/types\";\nimport type {\n Component,\n ParseResult,\n RenderUseBrick,\n} from \"@next-shared/tsx-parser\";\nimport type { DescriptionsProps } from \"../lib/components.js\";\nimport { convertToStoryboard } from \"./raw-data-generate/convert.js\";\nimport { getPreGeneratedAttrViews } from \"./getPreGeneratedAttrViews.js\";\nimport { parseDataSource } from \"./expressions.js\";\nimport { findObjectIdByUsedDataContexts } from \"./findObjectIdByUsedDataContexts.js\";\nimport { convertComponent } from \"./convertComponent.js\";\nimport { deepReplaceVariables } from \"./deepReplaceVariables.js\";\nimport type { ConvertOptions } from \"./interfaces.js\";\n\ninterface DescriptionItem {\n label: string;\n text?: string;\n field?: string;\n render?: RenderUseBrick;\n}\n\nexport default async function convertDescriptions(\n { properties }: Component,\n view: ParseResult,\n options: ConvertOptions,\n scope: \"view\" | \"template\"\n): Promise<BrickConf> {\n const { dataSource, title, list, columns, ...restProps } =\n properties as Partial<DescriptionsProps<object>> as Omit<\n DescriptionsProps<object>,\n \"list\"\n > & {\n dataSource: string | object;\n list: DescriptionItem[] | string;\n columns?: number;\n };\n\n const parsedDataSource = parseDataSource(dataSource);\n\n const objectId = findObjectIdByUsedDataContexts(\n parsedDataSource.usedContexts,\n view.dataSources,\n view.variables\n );\n\n const attrViews = objectId\n ? await getPreGeneratedAttrViews(objectId)\n : undefined;\n\n const configuredItems = new Map<string, BrickConf>();\n\n if (attrViews?.size && Array.isArray(list)) {\n for (const item of list) {\n if (item.render) {\n continue;\n }\n if (item.field) {\n const candidate = attrViews.get(item.field);\n if (candidate) {\n const brick = convertToStoryboard(candidate, item.field);\n if (brick) {\n brick.slot = `[${item.field}]`;\n configuredItems.set(item.field, brick);\n }\n }\n }\n }\n }\n\n const convertedList = Array.isArray(list)\n ? await Promise.all(\n list.map(async ({ render, ...item }) => {\n if (render) {\n const patterns = new Map<string, string>();\n if (render.params.length > 0) {\n patterns.set(render.params[0], \"DATA\");\n }\n\n const useBrick = (\n await Promise.all(\n render.children.map((child) =>\n convertComponent(child, view, options, scope)\n )\n )\n ).flatMap((child) => deepReplaceVariables(child, patterns));\n\n return {\n label: item.label,\n useBrick,\n };\n }\n const brick = item.field\n ? configuredItems.get(item.field)\n : undefined;\n return brick\n ? {\n label: item.label,\n useChildren: `[${item.field}]`,\n }\n : item;\n })\n )\n : list;\n\n return {\n brick: \"eo-descriptions\",\n properties: {\n ...restProps,\n dataSource: parsedDataSource.isString\n ? parsedDataSource.embedded\n : dataSource,\n // descriptionTitle: title,\n list: convertedList,\n ...(columns == null\n ? {\n column: options.expanded ? 3 : 1,\n templateColumns: \"repeat(auto-fill,minmax(360px,1fr))\",\n }\n : {\n column: columns,\n }),\n // showCard: !options.expanded,\n themeVariant: \"elevo\",\n },\n children:\n configuredItems.size > 0 ? Array.from(configuredItems.values()) : [],\n };\n}\n","import type { BrickConf } from \"@next-core/types\";\nimport type { Component } from \"@next-shared/tsx-parser\";\nimport type { CardProps } from \"../lib/components.js\";\n\nexport default function convertCard(component: Component): BrickConf {\n const { properties } = component;\n const { title, textContent } = properties as CardProps & {\n textContent?: string;\n };\n return {\n brick: \"eo-card\",\n properties: {\n themeVariant: \"elevo\",\n cardTitle: title,\n background: \"#fff\",\n outline: \"background\",\n ...(textContent ? { textContent } : null),\n },\n };\n}\n","import type { BrickConf } from \"@next-core/types\";\nimport type { Component } from \"@next-shared/tsx-parser\";\nimport type { ButtonProps } from \"../lib/components.js\";\n\nexport default function convertButton(component: Component): BrickConf {\n const { properties } = component;\n const props = properties as ButtonProps & {\n textContent?: string;\n };\n return {\n brick: \"eo-button\",\n properties: {\n ...props,\n themeVariant: \"elevo\",\n },\n };\n}\n","import type { BrickConf } from \"@next-core/types\";\nimport type { Component } from \"@next-shared/tsx-parser\";\nimport type { FormProps } from \"../lib/components.js\";\n\nexport default function convertForm(component: Component): BrickConf {\n const { properties } = component;\n const { values } = (properties ?? {}) as FormProps<object>;\n\n return {\n brick: \"eo-form\",\n properties: {\n values: values ?? {},\n themeVariant: \"elevo\",\n },\n };\n}\n","import type { BrickConf } from \"@next-core/types\";\nimport type { Component } from \"@next-shared/tsx-parser\";\n\nexport default function convertToolbar(_component: Component): BrickConf {\n return {\n brick: \"eo-flex-layout\",\n properties: {\n gap: \"0.5em\",\n alignItems: \"center\",\n },\n };\n}\n","import type { BrickConf } from \"@next-core/types\";\nimport type { Component } from \"@next-shared/tsx-parser\";\nimport type { ModalProps } from \"../lib/components.js\";\n\nexport default function convertModal(component: Component): BrickConf {\n const { properties } = component;\n const { title, confirmText, cancelText, ...restProps } =\n properties as Partial<ModalProps> & {\n textContent?: string;\n };\n return {\n brick: \"eo-modal\",\n portal: true,\n properties: {\n themeVariant: \"elevo\",\n modalTitle: title,\n confirmText: confirmText,\n cancelText: cancelText,\n keyboard: true,\n ...restProps,\n },\n };\n}\n","import type { BrickConf } from \"@next-core/types\";\nimport type { Component } from \"@next-shared/tsx-parser\";\n\nexport default function convertText(component: Component): BrickConf {\n const { properties } = component;\n const props = properties as {\n textContent?: string;\n };\n return {\n brick: \"span\",\n properties: {\n ...props,\n },\n };\n}\n","import type { BrickConf } from \"@next-core/types\";\nimport type { Component } from \"@next-shared/tsx-parser\";\nimport type { LinkProps } from \"../lib/components.js\";\n\nexport default function convertLink(component: Component): BrickConf {\n const { properties } = component;\n const props = properties as LinkProps & {\n textContent?: string;\n };\n return {\n brick: \"eo-link\",\n properties: {\n ...props,\n themeVariant: \"elevo\",\n },\n };\n}\n","import type { BrickConf } from \"@next-core/types\";\nimport type { Component } from \"@next-shared/tsx-parser\";\n\nexport default function convertOutput(component: Component): BrickConf {\n const { properties } = component;\n const { style, ...restProps } = properties as {\n textContent?: string;\n style?: Record<string, any>;\n };\n\n return {\n brick: \"pre\",\n properties: {\n style: {\n background: \"hsl(230, 1%, 98%)\",\n color: \"hsl(230, 8%, 24%)\",\n fontFamily:\n '\"Fira Code\", \"Fira Mono\", Menlo, Consolas, \"DejaVu Sans Mono\", monospace',\n direction: \"ltr\",\n textAlign: \"left\",\n whiteSpace: \"pre\",\n wordSpacing: \"normal\",\n wordBreak: \"normal\",\n lineHeight: \"1.5\",\n tabSize: \"2\",\n hyphens: \"none\",\n fontSize: \"13px\",\n\n padding: \"1em\",\n // margin: \"0.5em 0\",\n margin: \"0\",\n overflowX: \"auto\",\n borderRadius: \"9px\",\n ...style,\n },\n ...restProps,\n },\n };\n}\n","import type { BrickConf } from \"@next-core/types\";\nimport type { Component } from \"@next-shared/tsx-parser\";\nimport type { TagProps } from \"../lib/components.js\";\n\nexport default function convertTag(component: Component): BrickConf {\n const { properties } = component;\n const props = properties as TagProps & {\n textContent?: string;\n };\n return {\n brick: \"eo-tag\",\n properties: {\n ...props,\n themeVariant: \"elevo\",\n },\n };\n}\n","import type { BrickConf } from \"@next-core/types\";\nimport type { Component } from \"@next-shared/tsx-parser\";\nimport type { AvatarProps } from \"../lib/components.js\";\n\nexport default function convertAvatar(component: Component): BrickConf {\n const { properties } = component;\n const props = properties as AvatarProps;\n return {\n brick: \"eo-avatar\",\n properties: {\n ...props,\n themeVariant: \"elevo\",\n },\n };\n}\n","import type { BrickConf } from \"@next-core/types\";\nimport type { Component } from \"@next-shared/tsx-parser\";\nimport type { AvatarGroupProps } from \"../lib/components.js\";\n\nexport default function convertAvatarGroup(component: Component): BrickConf {\n const { properties } = component;\n const props = properties as AvatarGroupProps;\n return {\n brick: \"eo-avatar-group\",\n properties: {\n ...props,\n themeVariant: \"elevo\",\n },\n };\n}\n","import type { BrickConf } from \"@next-core/types\";\nimport type { Component } from \"@next-shared/tsx-parser\";\nimport type { CodeBlockProps } from \"../lib/components.js\";\n\nexport default function convertCodeBlock(component: Component): BrickConf {\n const { properties } = component;\n const props = properties as Partial<CodeBlockProps>;\n return {\n brick: \"eo-code-block\",\n properties: {\n ...props,\n themeVariant: \"elevo\",\n },\n };\n}\n","import type { BrickConf } from \"@next-core/types\";\nimport type { Component } from \"@next-shared/tsx-parser\";\n\nexport default function convertFormItem(\n component: Component,\n type: string\n): BrickConf {\n const { properties } = component;\n\n let brick = type;\n let props: Record<string, unknown> = {\n ...properties,\n themeVariant: \"elevo\",\n };\n\n switch (brick) {\n case \"eo-search\":\n props = {\n ...props,\n trim: true,\n };\n break;\n case \"eo-number-input\":\n brick = \"eo-input\";\n props = {\n type: \"number\",\n ...props,\n };\n break;\n }\n\n return {\n brick,\n properties: props,\n };\n}\n","import type { BrickConf } from \"@next-core/types\";\nimport type { Component } from \"@next-shared/tsx-parser\";\n\nexport default function convertForEach(component: Component): BrickConf {\n const { properties } = component;\n const { dataSource } = properties as {\n dataSource?: unknown;\n };\n return {\n brick: \":forEach\",\n dataSource,\n };\n}\n","import type { BrickConf } from \"@next-core/types\";\nimport type { Component } from \"@next-shared/tsx-parser\";\n\nexport default function convertIf(component: Component): BrickConf {\n const { properties } = component;\n const { dataSource } = properties as {\n dataSource?: unknown;\n };\n return {\n brick: \":if\",\n dataSource,\n };\n}\n","import { isExpressionString, type ParseResult } from \"@next-shared/tsx-parser\";\n\nexport function getViewTitle(\n result: ParseResult | null | undefined\n): string | undefined {\n const view = result?.components.find((comp) => comp.name === \"View\");\n const viewTitle = view?.properties?.title;\n if (typeof viewTitle === \"string\" && !isExpressionString(viewTitle)) {\n return viewTitle;\n }\n}\n","import mergeTexts from \"./mergeTexts.txt?raw\";\nimport getLatestMetricValue from \"./getLatestMetricValue.txt?raw\";\nimport extractList from \"./extractList.txt?raw\";\nimport groupMetricData from \"./groupMetricData.txt?raw\";\nimport getMetricDisplayNames from \"./getMetricDisplayNames.txt?raw\";\n\nlet helperFunctions: Map<string, string> | undefined;\n\nexport function getHelperFunctions() {\n if (!helperFunctions) {\n helperFunctions = new Map([\n [\"_helper_mergeTexts\", fixFunctionSource(mergeTexts)],\n [\"_helper_getLatestMetricValue\", fixFunctionSource(getLatestMetricValue)],\n [\"_helper_extractList\", fixFunctionSource(extractList)],\n [\"_helper_groupMetricData\", fixFunctionSource(groupMetricData)],\n [\n \"_helper_getMetricDisplayNames\",\n fixFunctionSource(getMetricDisplayNames),\n ],\n ]);\n }\n return helperFunctions;\n}\n\nfunction fixFunctionSource(source: string): string {\n return source.replace(/^export /m, \"\").replace(/^import [^\\n]+\\n/gm, \"\");\n}\n","import type { ContextConf, StoryboardFunction } from \"@next-core/types\";\nimport type { ParseResult } from \"@next-shared/tsx-parser\";\nimport { withBox } from \"./withBox.js\";\nimport { convertDataSources } from \"./convertDataSources.js\";\nimport { convertVariables } from \"./convertVariables.js\";\nimport { convertComponent } from \"./convertComponent.js\";\nimport type { ConvertOptions, ConvertResult } from \"./interfaces.js\";\nimport { convertTemplates } from \"./convertTemplates.js\";\nimport { getViewTitle } from \"./getViewTitle.js\";\nimport { getHelperFunctions } from \"./helpers/index.js\";\n\nexport async function convertTsx(\n result: ParseResult,\n options: ConvertOptions\n): Promise<ConvertResult> {\n const clonedResult: ParseResult = {\n ...result,\n usedHelpers: new Set(result.usedHelpers),\n };\n\n const context: ContextConf[] = [\n ...convertDataSources(clonedResult.dataSources ?? []),\n ...convertVariables(clonedResult.variables ?? []),\n ...(options.withContexts\n ? Object.entries(options.withContexts).map(([name, value]) => ({\n name,\n value,\n }))\n : []),\n ];\n\n if (\n clonedResult.components.length !== 1 ||\n clonedResult.components[0].name !== \"View\"\n ) {\n throw new Error(\"Only single root component <View> is supported\");\n }\n\n const view = clonedResult.components[0];\n\n const children = (\n await Promise.all(\n (view.children ?? []).map((component) =>\n convertComponent(component, clonedResult, options, \"view\")\n )\n )\n ).flat();\n\n const needBox = clonedResult.components.every((component) =>\n [\"Form\", \"Descriptions\", \"Button\"].includes(component.name)\n );\n\n const templates = await convertTemplates(\n clonedResult.templates,\n clonedResult,\n options\n );\n\n const helpers = Array.from(clonedResult.usedHelpers).map<StoryboardFunction>(\n (name) => {\n const source = getHelperFunctions().get(name);\n if (!source) {\n throw new Error(`Helper function ${name} not found`);\n }\n return {\n name,\n source,\n typescript: true,\n };\n }\n );\n\n return {\n title: getViewTitle(clonedResult),\n brick: {\n brick: \"eo-content-layout\",\n children: needBox ? [withBox(children, options)] : children,\n },\n context,\n functions: [...clonedResult.functions, ...helpers],\n templates,\n };\n}\n","// istanbul ignore file\nimport type { ParseResult, ParseOptions } from \"@next-shared/tsx-parser\";\nimport { wrap } from \"comlink\";\n\nexport interface RemoteTsxParserWorker {\n parse(source: string, options?: ParseOptions): Promise<ParseResult>;\n}\n\nlet remoteWorkerPromise: Promise<RemoteTsxParserWorker> | undefined;\n\nlet worker: Worker | undefined;\n\nexport function getRemoteTsxParserWorker() {\n if (!remoteWorkerPromise) {\n remoteWorkerPromise = (async () => {\n const Remote = wrap<{ new (): RemoteTsxParserWorker }>(getWorker());\n return await new Remote();\n })();\n }\n return remoteWorkerPromise;\n}\n\nfunction getWorker() {\n if (!worker) {\n worker = new Worker(new URL(\"./tsxParser.worker.ts\", import.meta.url));\n }\n return worker;\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.container--M22i1CYq{display:flex;height:100%}.editor--kF8SUoBP,\n.preview--gu5OlS2X{flex:1;min-width:0}.preview--gu5OlS2X{padding:1em;overflow:auto}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"container\": `container--M22i1CYq`,\n\t\"editor\": `editor--kF8SUoBP`,\n\t\"preview\": `preview--gu5OlS2X`\n};\nexport default ___CSS_LOADER_EXPORT___;\n"],"names":["createPortal","rootId","portal","document","createElement","dataset","style","position","width","height","body","append","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","undefined","withBox","children","brick","properties","expanded","background","backdropFilter","borderRadius","padding","convertDataSources","dataSources","map","_ref","name","http","api","params","tool","transform","rejectTransform","config","scope","hasEnabled","Object","prototype","hasOwnProperty","call","resolve","useProvider","args","isObject","translate","limit","limitBy","order","displayName","value","onReject","if","enabled","track","fallback","expose","convertVariables","variables","EXPRESSION_PREFIX_REG","EXPRESSION_SUFFIX_REG","parseDataSource","data","isString","expression","expr","trim","test","replace","console","warn","JSON","stringify","embedded","usedContexts","strictCollectMemberUsage","convertEventHandlers","handler","list","Array","isArray","hdl","_convertEventHandlers","action","payload","_handler$callback","success","callback","error","target","componentId","method","targetRef","ref","type","content","detail","then","consequent","else","alternate","convertEventHandler","filter","Boolean","length","VALID_IDENTIFIER_REG","getMemberAccessor","property","propertyStr","String","pick","_","convertToStoryboard","attr","lowLevelConvertToStoryboard","attrAccessor","brickItem","display","getPlainBrick","countOnly","_config$style","_config$style2","_config$style3","_config$style4","_config$style5","colorSuffix","variant","valueAccessor","getValueAccessor","textContent","size","getTagSize","color","palette","replaceAll","outline","getIconBrick","alignItems","gap","maxItems","Number","dataSource","_config$true$icon","_config$true","_config$false$icon","_config$false","_config$true2","_config$false2","trueIcon","true","icon","falseIcon","false","trueStyle","getPlainStyle","falseStyle","lib","prefix","category","theme","_config$formatter","formatter","format","isCostTime","tag","_config$true$text","_config$true3","_config$false$text","_config$false3","_config$true4","_config$false4","trueContent","text","falseContent","field","configStyle","ignoreStyle","fontSize","fontWeight","findNearestCandidate","candidates","weight","reduce","nearest","candidate","Math","abs","visualWeight","cache","Map","async","getModelObjectInstanceId","objectId","has","get","promise","InstanceApi_postSearchV3","fields","query","$eq","page_size","instanceId","doGetModelObjectInstanceId","set","attrListCache","getPreGeneratedAttrViews","attrViews","attrList","join","InstanceApi_getDetail","doGetAttrList","getAttrList","_attr$generatedView","select","generatedView","id","e","doGetPreGeneratedAttrViews","findObjectIdByUsedDataContexts","dataSourceToObjectIdMap","variableDepsMap","variable","deps","processedContexts","Set","find","context","add","dataSourceObjectId","variableDeps","dep","isExpressionString","trimmed","deepReplaceVariables","patterns","item","fromEntries","entries","k","v","keys","some","includes","replacements","result","preevaluate","withParent","hooks","beforeVisitGlobal","node","path","p","shorthand","computed","push","source","suffix","chunks","prevStart","i","start","end","substring","replaceVariables","columnUseBrickParams","COLORS","convertHexColorToRGBA","alpha","hex","slice","bigint","parseInt","counter","tplNameMap","getTplNamePrefixByRootId","getTplNameSuffix","toLowerCase","convertComponent","component","_component$children","tpl","templates","t","props","parsedDataSource","themeVariant","convertList","view","_columns$","columns","rowKey","pagination","restProps","configuredColumns","column","render","dataIndex","slot","convertedColumns","Promise","all","useBrick","child","flatMap","startsWith","useChildren","key","scrollConfig","x","bordered","from","values","convertTable","title","configuredItems","convertedList","_ref2","label","templateColumns","convertDescriptions","cardTitle","convertCard","groupField","_groupField","widgets","usedHelpers","chartData","mergedWidgets","metricGroups","groups","doGetPreGeneratedMetricGroups","getPreGeneratedMetricGroups","mergedMetrics","metricIds","w","metric","widget","mergedWidget","group","g","metrics","relevantMetrics","m","counterMetric","groupTitle","metricId","delete","colorCursor","gridTemplateColumns","_widget$relevantMetri","_widget$relevantMetri2","precision","colorCount","colors","unit","chart","xField","yFields","yField","forceAbsoluteNumbers","series","isNegative","timeFormat","areaOptions","fill","axis","yAxis","min","max","shape","areaShape","legends","tooltip","marker","stroke","lineWidth","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","domStyles","boxShadow","border","marginBottom","flexDirection","lineColor","showArea","convertDashboard","convertButton","convertForm","confirmText","cancelText","modalTitle","keyboard","convertModal","convertText","convertLink","fontFamily","direction","textAlign","whiteSpace","wordSpacing","wordBreak","lineHeight","tabSize","hyphens","margin","overflowX","convertOutput","convertTag","convertAvatar","convertAvatarGroup","convertCodeBlock","convertFormItem","convertForEach","convertIf","_brick","_brick$properties","_brick$properties2","_brick$properties2$da","_brick2","_brick2$properties","_brick$properties3","_brick$properties3$da","events","event","_component$events","click","search","convertEvents","flat","getViewTitle","_view$properties","components","comp","viewTitle","helperFunctions","fixFunctionSource","convertTsx","_clonedResult$dataSou","_clonedResult$variabl","_view$children","clonedResult","withContexts","Error","needBox","every","tplNamePrefix","_tpl$dataSources","_tpl$variables","bricks","state","convertTemplates","helpers","mergeTexts","getLatestMetricValue","extractList","groupMetricData","getMetricDisplayNames","typescript","functions","remoteWorkerPromise","worker","getRemoteTsxParserWorker","Remote","wrap","Worker","URL","___CSS_LOADER_EXPORT___","module"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(globalThis.webpackChunk_next_bricks_vb_experiment=globalThis.webpackChunk_next_bricks_vb_experiment||[]).push([[2143],{535:e=>{"use strict";e.exports="node_modules\n/dist\n/temp\n"},743:e=>{"use strict";e.exports='import functions from "./functions/index.js";\nimport menus from "./menus/index.js";\nimport contracts from "./contracts/index.js";\nimport i18n from "./i18n/index.js";\nimport meta from "./meta.js";\n\nexport default {\n functions,\n menus,\n contracts,\n i18n,\n meta,\n};\n'},1259:e=>{"use strict";e.exports='export default {\n appId: "__APP_ID__"\n};\n'},1330:e=>{"use strict";e.exports='// @ts-check\n/** @typedef {import("express").RequestHandler} Mock */\n/** @typedef {{ featureFlags?: Record<string, boolean>; misc?: Record<string, unknown>; [k: string]: unknown; }} Settings */\n/** @type {{ brickFolders?: string[]; mocks?: Mock[]; settings?: Settings }} */\nexport default {\n brickFolders: [\n "./bricks",\n ],\n // NOTE: Uncomment these lines below to enable local mocks:\n // mocks: [\n // (req, res, next) => {\n // switch (`${req.method} ${req.path}`) {\n // case "GET /api/auth/login":\n // res.send({\n // code: 0,\n // data: {\n // loggedIn: true,\n // username: "mock_user",\n // },\n // });\n // return;\n // }\n //\n // next();\n // }\n // ],\n}\n'},1895:e=>{"use strict";e.exports='{\n "name": "__APP_ID__",\n "private": true,\n "type": "module",\n "scripts": {\n "dev": "run-p start serve",\n "start": "next-jsx-start",\n "serve": "brick-container-serve --local-micro-apps=\\"__APP_ID__\\" --live-reload"\n },\n "engines": {\n "node": ">=16"\n },\n "devDependencies": {\n "@next-core/brick-container": "^3.6.2",\n "@next-core/types": "^1.6.0",\n "next-jsx": "^0.1.5",\n "npm-run-all": "^4.1.5",\n "csstype": "^3.1.2"\n }\n}\n'},1897:e=>{function n(e){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}n.keys=()=>[],n.resolve=n,n.id=1897,e.exports=n},2582:e=>{"use strict";e.exports="root = true\n\n[*]\nindent_style = space\nindent_size = 2\ncharset = utf-8\ntrim_trailing_whitespace = true\ninsert_final_newline = true\n"},3812:e=>{"use strict";e.exports='{\n "compilerOptions": {\n "moduleResolution": "Node16",\n "module": "Node16"\n },\n "include": ["./src", "./declarations.d.ts"]\n}\n'},4071:(e,n,t)=>{"use strict";t.d(n,{O7:()=>r,bB:()=>o,jC:()=>s});const r=["context","exact","path","slot"],s="default:",o=new Set(["break","case","catch","class","continue","const","constructor","debugger","default","delete","do","else","export","extends","false","finally","for","from","function","get","if","import","in","instanceof","let","new","null","return","set","static","super","switch","symbol","this","throw","true","try","typeof","undefined","var","void","while","with","yield","async","await","of"])},4215:e=>{"use strict";e.exports='declare namespace JSX {\n interface IntrinsicElements {\n "basic-bricks_general-button": BrickProps & {\n buttonName?: string;\n buttonType?: string;\n };\n\n "basic-bricks_micro-view": BrickProps & {\n pageTitle?: string;\n };\n\n "forms_general-input": FormItemProps;\n "forms_general-select": FormItemProps;\n "forms_general-textarea": FormItemProps;\n "forms_general-checkbox": FormItemProps;\n "forms_general-radio": FormItemProps;\n "forms_general-switch": FormItemProps;\n }\n\n interface BrickProps {\n // HTML properties:\n id?: string;\n slot?: string;\n title?: string;\n className?: string;\n style?: import("csstype").Properties;\n\n // Brick configurations:\n ref?: string;\n if?: unknown;\n portal?: unknown;\n events?: import("@next-core/types").BrickEventsMap;\n lifeCycle?: import("@next-core/types").BrickLifeCycle;\n\n // JSX\n children?: any;\n }\n\n interface FormItemProps extends BrickProps {\n name?: string;\n label?: string;\n placeholder?: string;\n value?: unknown\n }\n}\n'},6315:(e,n,t)=>{"use strict";t.d(n,{c:()=>A});var r=t(8135),s=t(4071);function o(e,n,t){let r=e.get(n);r||(r=new Set,e.set(n,r)),r.add(t)}function i(e){return[...e].sort(((e,n)=>Number(e[0].startsWith("."))-Number(n[0].startsWith(".")))).map((e=>{let[n,t]=e;const r=[...t];return 1===r.length&&r[0].startsWith(s.jC)?`import ${r[0].substring(s.jC.length)} from "${n}";`:`import { ${r.join(", ")} } from "${n}";`}))}var a=t(9936),c=t(8403),l=t(77);const p="transform-pipeline-operator-minimal";(0,l.registerPlugin)(p,(()=>({name:p,inherits:l.availablePlugins["syntax-pipeline-operator"],visitor:{BinaryExpression(e){const{node:n}=e,{operator:t,left:s,right:o}=n;if("|>"!==t)return;const i=r.callExpression(o,[s]);e.replaceWith(i)}}})));const u=p;var f=t(8263);function d(e,n,t){if(/^\s*<%[~=]?\s/.test(e)&&/\s%>\s*$/.test(e))try{let s="";const i=e.replace(/^\s*<%([~=])?\s|\s%>\s*$/g,((e,n)=>(n&&(s=n),"")));let a="="===s;const c="~"===s,p=new Set;let d,m=(0,l.transform)(`(${i})`,{ast:!0,code:!1,plugins:[[u,{proposal:"minimal"}],[f.A,{imports:p}]]}).ast.program.body[0].expression;"SequenceExpression"!==m.type||(d=m.expressions[0],"StringLiteral"!==d.type)||"track context"!==d.value&&"track state"!==d.value||a||(a=!0,m=m.expressions.length>2?r.sequenceExpression(m.expressions.slice(1)):m.expressions[1]),!a||p.has("STATE")||p.has("CTX")||(a=!1);for(const e of p)if("FN"===e){const e=["resources","functions","index.js"];let r=0;for(let n=0;n<e.length&&n<t.length&&(r=n,t[n]===e[n]);n++);o(n,`${1===t.length?".":new Array(t.length-1-r).fill("..").join("/")}/${e.slice(r).join("/")}`,"default:FN")}else o(n,"next-jsx/runtime",e);return c&&(o(n,"next-jsx/runtime","recursive"),m=r.callExpression(r.identifier("recursive"),[m])),a&&(o(n,"next-jsx/runtime","bind"),m=r.callExpression(r.identifier("bind"),[m])),m}catch(n){console.warn("Parse expression failed:",e,n)}return null}function m(e,n,t,s,o){var i;return null!==(i=x(e,n,t,s,o))&&void 0!==i?i:r.nullLiteral()}function x(e,n,t,s,o){if(s&&"useBrick"===o){if(Array.isArray(e))return b(e,n,t);if((0,a.isObject)(e))return v(e,n,t)}if(Array.isArray(e))return r.arrayExpression(e.map((e=>x(e,n,t,s))));if("function"==typeof e)return null;if((0,a.isObject)(e))return r.objectExpression(Object.entries(e).map((e=>{let[o,i]=e;const a=x(i,n,t,s,o);return null!==a?r.objectProperty(r.stringLiteral(o),a):null})).filter(Boolean));if("string"==typeof e){const s=d(e,n,t);return null!=s?s:r.stringLiteral(e)}return"number"==typeof e?r.numericLiteral(e):"boolean"==typeof e?r.booleanLiteral(e):null===e?r.nullLiteral():null}function g(e,n,t,s,o,i){const l=[],p=[];for(const[s,i]of Object.entries(e))void 0!==i&&(/^[_$a-zA-Z][$\w]*$/.test(s)?l.push([s,i]):p.push(r.objectProperty(r.stringLiteral(o?`${o}:${s}`:s),m(i,n,t))));const u=(s?l.sort((f=s,function(e,n){return f.indexOf(n[0])-f.indexOf(e[0])})):l).map((e=>{let[s,l]=e;const p=function(e,n,t,s,o){if("string"==typeof e){const s=d(e,n,t);if(s)return r.jsxExpressionContainer(s);const o=r.stringLiteral(e);return e.includes(c.j4)||JSON.stringify(e).includes("\\")?r.jsxExpressionContainer(o):o}if(!0===e)return null;if(o&&"useBrick"===s){if(Array.isArray(e))return y(b(e,n,t));if((0,a.isObject)(e))return y(v(e,n,t))}const i=m(e,n,t,o);return r.jsxExpressionContainer(i)}(l,n,t,s,i);return r.jsxAttribute(o?r.jsxNamespacedName(r.jsxIdentifier(o),r.jsxIdentifier(s)):r.jsxIdentifier(s),p)}));var f;return p.length>0&&u.push(r.jsxSpreadAttribute(r.objectExpression(p))),u}function y(e){return"StringLiteral"!==e.type?r.jsxExpressionContainer(e):e}function h(e,n,t){o(n,"next-jsx","Route");const{children:i,slot:a,_isRoute:c,...l}=e,p=null!=i?i:[],u=""===a?void 0:a,f=0===p.length;return r.jsxElement(r.jsxOpeningElement(r.jsxIdentifier("Route"),g({...l,slot:u},n,t,s.O7),f),f?null:r.jsxClosingElement(r.jsxIdentifier("Route")),p.map((e=>h(e,n,t))),f)}function j(e){return"StringLiteral"===e.type?r.jsxExpressionContainer(e):e}function b(e,n,t){const s=e.map((e=>v(e,n,t)));return 1===s.length?s[0]:r.jsxFragment(r.jsxOpeningFragment(),r.jsxClosingFragment(),s.map(j))}function v(e,n,t){if("string"==typeof e)return r.stringLiteral(e);if(e.template)return function(e,n,t){o(n,"next-jsx","LegacyTemplate");const{children:s,...i}=e;return r.jsxElement(r.jsxOpeningElement(r.jsxIdentifier("LegacyTemplate"),g(i,n,t),!0),null,[],!0)}(e,n,t);const{brick:s,children:i,properties:a,events:c,lifeCycle:l,if:p,portal:u,ref:f,slot:d,...m}=e;if("string"==typeof s){let x,y,b=!0;switch(s){case":forEach":case":if":case":switch":x=`${s[1].toUpperCase()}${s.substring(2)}`,o(n,"next-jsx",x);break;default:b=!1,x=s.replaceAll(".","_")}b&&(y=m.dataSource,delete m.dataSource);const E=""===d?void 0:d,k=null!=a?a:{},{textContent:A,children:w,events:O,lifeCycle:$,if:P,ref:S,id:C,slot:T,...I}=k,R="string"==typeof A,F=0===i.length&&!R;i.length>0&&R&&console.warn("Invalid brick: mix slotted children and textContent:",e);const L=r.jsxOpeningElement(r.jsxIdentifier(x),[...g({if:!0===p?void 0:p,slot:E,ref:f,id:C,...b?{value:y}:null},n,t),...g(I,n,t,void 0,void 0,!0),...g({events:c,lifeCycle:l,portal:u},n,t),...g({children:w,events:O,lifeCycle:$,if:P,ref:S},n,t,void 0,"prop"),...g(m,n,t,void 0,"conf")],F),N=F?null:r.jsxClosingElement(r.jsxIdentifier(x));let M;return M=F?[]:i.length>0?i.map((e=>"string"!=typeof e&&e._isRoute?h(e,n,t):j(v(e,n,t)))):[_(A,n,t)],r.jsxElement(L,N,M,F)}throw new Error(`Unexpected brick node: ${JSON.stringify(e)}`)}function _(e,n,t){const s=d(e,n,t);return s?r.jsxExpressionContainer(s):/[{}<>]|&(?:[a-zA-Z0-9]+|#\d+|#x[\da-fA-F]+);/.test(e)?r.jsxExpressionContainer(r.stringLiteral(e)):r.jsxText(e)}function E(e,n){const t=r.exportDefaultDeclaration(e),{code:o}=(0,l.transformFromAst)(r.program([t],void 0,"module"),void 0,{generatorOpts:{jsescOption:{minimal:!0}},cloneInputAst:!1}),a=function(e){const n=new Set;for(const t of e.values())for(const e of t)n.add(e.startsWith(s.jC)?e.substring(s.jC.length):/\s+as\s+/.test(e)?e.split(/\s+as\s+/)[1]:e);return n}(n),p=i(n),u=o.replace(c.dC,((e,n)=>{const t=n.split("/"),r=t[t.length-1],o=("context"===r&&3===t.length&&"views"===t[0]?`${t[t.length-2]}_${r}`:r).replaceAll("-","_").replace(/^(\d)/,"_$1");let i=2,c=o;for(;a.has(c)||s.bB.has(c);)c=`${o}_${i++}`;return a.add(c),p.push(`import ${c} from "./${n}.js";`),c}));return p.length>0?`${p.join("\n")}\n\n${u}`:o}function k(e){return`export default ${JSON.stringify(e)};`}function A(e,n,t){switch(n){case"routes":return function(e,n){const t=new Map;return E(r.jsxFragment(r.jsxOpeningFragment(),r.jsxClosingFragment(),e.map((e=>h(e,t,n)))),t)}(e,t);case"bricks":return function(e,n){const t=new Map;return E(Array.isArray(e)?b(e,t,n):v(e,t,n),t)}(e,t);case"template":return function(e,n){const t=new Map;o(t,"next-jsx","Component");const{bricks:s,name:i,state:a,proxy:c}=e;return E(r.jsxElement(r.jsxOpeningElement(r.jsxIdentifier("Component"),g({name:i,state:a,proxy:c},t,n)),r.jsxClosingElement(r.jsxIdentifier("Component")),(null!=s?s:[]).map((e=>j(v(e,t,n))))),t)}(e,t);case"context":case"menu":return function(e,n){const t=new Map,s=r.exportDefaultDeclaration(m(e,t,n)),o=r.program([s],void 0,"module"),a=i(t),c=(0,l.transformFromAst)(o,void 0,{generatorOpts:{jsescOption:{minimal:!0}},cloneInputAst:!1}).code;return a.length>0?`${a.join("\n")}\n\n${c}`:c}(e,t);case"plain":return k(e);case"others":return function(e){let n=k(e);const t=new Set,r=[];return n=n.replace(c.dC,((e,n)=>{const s=n.split("/"),o=s[s.length-1].replaceAll("-","_").replace(/^(\d)/,"_$1");let i=2,a=o;for(;t.has(a);)a=`${o}_${i++}`;return t.add(a),r.push(`import ${a} from "./${n}.js";`),a})),r.length>0&&(n=`${r.join("\n")}\n\n${n}`),n}(e);default:throw new Error(`Unknown node type: ${n}`)}}},6414:e=>{"use strict";e.exports="# __PROJECT_NAME__\n\n## 准备\n\n```bash\nyarn\n```\n\n## 开发\n\n打开两个终端,分别运行 `yarn start` 和 `yarn serve`。\n\n然后浏览器打开 http://localhost:8081__PROJECT_HOMEPAGE__\n\n提示:\n- 运行 `yarn serve` 时按需使用 `--subdir` 和 `--server` 等参数。\n- 也可以选择只使用一个终端运行 `yarn dev`,此时需要把 `yarn serve` 相关的参数定义在 `package.json` 文件中。\n\n## 离线开发\n\n修改 `dev.config.mjs`,取消注释 `mock` 一节的代码,参考对 `GET /api/auth/login` 接口,对其他远端接口进行 mock。\n"},7577:e=>{"use strict";e.exports='import app from "./app.js";\nimport routes from "./routes.js";\nimport components from "./components/index.js";\nimport resources from "./resources/index.js";\n\nexport default {\n app,\n routes,\n components,\n resources,\n};\n'},8263:(e,n,t)=>{"use strict";t.d(n,{A:()=>i}),t(8135);var r=t(77);t(9936);const s=new Set(["_","location","moment","ANCHOR","APP","BASE_URL","CTX","DATA","EVENT","FLAGS","FN","HASH","I18N_TEXT","I18N","IMG","INSTALLED_APPS","ITEM","INDEX","SIZE","LOCAL_STORAGE","MEDIA","MISC","PARAMS","PATH_NAME","PATH","PERMISSIONS","PIPES","PROCESSORS","QUERY_ARRAY","QUERY","SESSION_STORAGE","STATE","SYS","THEME","TAG_URL","SAFE_TAG_URL"]),o="smart-imports";(0,r.registerPlugin)(o,((e,n)=>({name:o,visitor:{Identifier(e){const{node:t,scope:r,key:o,parent:i}=e,{name:a}=t;!r.hasGlobal(a)||"undefined"===a||"key"===o&&"ObjectProperty"===i.type&&!i.computed||"property"===o&&"MemberExpression"===i.type&&!i.computed||s.has(a)&&(null==n||n.imports.add(a))}}})));const i=o},8403:(e,n,t)=>{"use strict";t.d(n,{WM:()=>c,dC:()=>i,j4:()=>o,pA:()=>l});var r=t(9936);const s={properties:["ref","refProperty","extraOneWayRefs","refTransform","mergeType","mergeMethod","mergeArgs","mergeProperty","asVariable"],slots:["ref","refSlot","refPosition"],events:["ref","refEvent"],methods:["ref","refMethod"]},o=`--${Math.floor(1e16*Math.random()).toString(36)}--:`,i=new RegExp(`"${o}((?:[-\\w]+/)*[-\\w]+)"`,"g");function a(e,n){return`${o}${e}${e?"/":""}${n}`}function c(e,n,t){return e.map((e=>function(e,n,t){const r=[...n,"views"],s=u("route",e.alias,r,t.namePool);let o;f(t.namePool,[...r,s],s),function(e){delete e.alias,delete e.iid,delete e.deviceOwner,delete e.analyticsData,""===e.menu&&delete e.menu,j(e,["redirect","exact"]),"bricks"===e.type&&delete e.type}(e);const i=[...r,s];if("redirect"===e.type)o=e;else if("routes"===e.type){const{routes:r,...s}=e;o={...s,children:c(r,n,t)}}else{const{bricks:n,...r}=e,c=m(n,i,t);t.extracts.push({name:s,path:i,node:c,nodeType:"bricks"}),o={...r,view:a(`views/${s}`,s)}}const l=p("context",e.context,s,i,t);return{...o,context:l}}(e,n,t)))}function l(e,n,t){return e.map((e=>function(e,n,t){if(!e.name.startsWith("tpl-"))throw new Error(`Invalid template name: "${e.name}"`);const o=e.name.substring(4),i=[...n,o],c=m(e.bricks,i,t),l=p("state",e.state,o,i,t),f=function(e,n,t){if((0,r.isObject)(e)&&Object.keys(e).length>0){const o=u("proxy","proxy",n,t.namePool);return function(e){for(const[n,t]of Object.entries(e))switch(n){case"properties":case"events":case"slots":case"methods":if((0,r.isObject)(t))for(const[e,o]of Object.entries(t))if((0,r.isObject)(o)){const r=Object.keys(o);for(const e of r)s[n].includes(e)||delete o[e];0===r.length&&delete t[e]}break;default:delete e[n]}}(e),t.extracts.push({name:o,path:n,node:e,nodeType:"plain"}),a("",o)}return e}(e.proxy,i,t);return t.extracts.push({name:o,path:i,node:{...e,bricks:c,state:l,proxy:f},nodeType:"template"}),a(o,o)}(e,n,t)))}function p(e,n,t,r,s){if(Array.isArray(n)&&n.length>0){for(const e of n)h(e);const o=u(e,e,r,s.namePool);return s.extracts.push({name:o,path:r,node:n,nodeType:"context"}),a("context"===e?`views/${t}`:"",o)}}function u(e,n,t,r){let s=null==n?void 0:n.toLowerCase();"index"==s&&(s=`${s}_2`);const o=d(r,t),i="route"!==e||"string"==typeof s&&/^[-\w]+$/.test(s)&&"index"!==s;if(!i||o.has(s)){const n=i?s:e;let t,r=2;for(;o.has(t=`${n}_${r}`);)r++;s=t}return o.add(s),s}function f(e,n,t){d(e,n).add(t)}function d(e,n){const t=n.join("/");let r=e.get(t);return r||e.set(t,r=new Set),r}function m(e,n,t){return Array.isArray(e)?e.map((e=>x(e,n,t))):e}function x(e,n,t){let s;"string"==typeof e.alias&&/^<[-\w]+>$/.test(e.alias)&&"<index>"!==e.alias&&(s=e.alias.slice(1,-1)),function(e){if("string"==typeof e.properties){const n=`The \`properties\` of brick cannot be a string, received: "${e.properties}"`;throw console.error(`${n}. Check your brick:`,e),new Error(n)}delete e.alias,delete e.iid,delete e.deviceOwner,delete e.uuid,e.events&&0===Object.keys(e.events).length&&delete e.events,e.lifeCycle&&0===Object.keys(e.lifeCycle).length&&delete e.lifeCycle,j(e,["bg","portal"])}(e),s&&(s=u("brick",s,n,t.namePool),f(t.namePool,[...n,s],s));const{slots:o,...i}=e,l=[],p=[...n,...s?[s]:[]];if((0,r.isObject)(o))for(const[e,r]of Object.entries(o))if("routes"===r.type){var d;const s=c((null!==(d=r.routes)&&void 0!==d?d:[]).map((n=>({...n,_isRoute:!0,slot:e}))),n,t);l.push(...s)}else{var x;const n=m((null!==(x=r.bricks)&&void 0!==x?x:[]).map((n=>({...n,slot:e}))),p,t);l.push(...n)}return(0,r.isObject)(i.properties)&&!Array.isArray(i.properties)&&(i.properties=g(i.properties,p,t)),i.children=l,s?(t.extracts.push({name:s,node:i,path:[...n,s],nodeType:"bricks"}),a(s,s)):i}function g(e,n,t){return Object.fromEntries(Object.entries(e).map((e=>{let[r,s]=e;return[r,y(s,r,n,t)]})))}function y(e,n,t,s){return"useBrick"===n?Array.isArray(e)?m(e,t,s):(0,r.isObject)(e)?x(e,t,s):e:Array.isArray(e)?e.map(((e,n)=>y(e,n,t,s))):(0,r.isObject)(e)?g(e,t,s):e}function h(e){delete e.path,delete e.relatedId,delete e.doc}function j(e,n){for(const t of n)e[t]||delete e[t]}},8587:(e,n,t)=>{"use strict";function r(e){const n=[];for(const t of e)s(t,n);return n}function s(e,n){let{name:t,path:r,node:s,nodeType:o}=e,i=n;for(const e of r){const n=i.find((n=>n.name===e&&"folder"===n.type));if(n){i=n.items;continue}const t={type:"folder",name:e,items:[]};i.push(t),i=t.items}const a={type:"file",name:t,node:s,nodeType:o};i.push(a)}t.d(n,{_:()=>r})},9055:(e,n,t)=>{"use strict";t.d(n,{A:()=>i});var r=t(8135),s=t(77);const o="transform-storyboard-function";(0,s.registerPlugin)(o,(()=>({name:o,visitor:{FunctionDeclaration(e){"Program"===e.parent.type&&e.replaceWith(r.exportDefaultDeclaration(e.node))},TSDeclareFunction(e){"Program"===e.parent.type&&e.replaceWith(r.exportDefaultDeclaration(e.node))}}})));const i=o}}]);
|
|
2
|
-
//# sourceMappingURL=2143.633afe34.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/2143.633afe34.js","mappings":"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","sources":["webpack:///../../node_modules/@babel/standalone/ sync","webpack:///./src/data-providers/utils/constants.ts","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:///./src/data-providers/utils/plugins/smart-imports.ts","webpack:///./src/data-providers/utils/extract.ts","webpack:///./src/data-providers/utils/buildFileStructure.ts","webpack:///./src/data-providers/utils/plugins/storyboard-function.ts"],"sourcesContent":["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;","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 { 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","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","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"],"names":["webpackEmptyContext","req","e","Error","code","keys","resolve","id","module","exports","REVERSED_ROUTE_KEYS","IMPORT_DEFAULT_PREFIX","JS_RESERVED_WORDS","Set","addImport","imports","from","name","imp","get","set","add","generateImports","sort","a","b","Number","startsWith","map","_ref","names","importNames","length","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","plugins","proposal","SmartImports","program","body","expression","type","expressions","slice","has","targetPath","relative","i","Array","fill","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","indexOf","expr","stringLiteral","includes","PLACEHOLDER_PREFIX","JSON","stringify","transformJsxValue","transformJsxAttributeValue","transformRoute","children","_children","slot","_slot","_isRoute","restNode","selfClosing","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","prop_id","prop_slot","restProps","hasTextContent","opening","closing","childElements","transformJsxText","text","generateJsx","exportDefault","transformFromAst","generatorOpts","jsescOption","minimal","cloneInputAst","usedVarNames","values","split","getVarNamesByImports","allImports","newCode","PLACEHOLDER_PREFIX_REGEXP","baseName","counter","varName","generatePlain","generate","nodeType","Map","generateRoutes","generateBricks","state","proxy","generateTemplate","content","generateJsWithExpressions","generateOthers","EXPRESSION_GLOBALS","_api","opts","Identifier","scope","parent","hasGlobal","computed","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","TSDeclareFunction"],"sourceRoot":""}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! For license information please see 4957.b8513749.js.LICENSE.txt */
|
|
2
|
-
"use strict";(globalThis.webpackChunk_next_bricks_vb_experiment=globalThis.webpackChunk_next_bricks_vb_experiment||[]).push([[4957],{7695:(e,t,n)=>{n.d(t,{p:()=>s});const r=Symbol("Comlink.proxy"),i=Symbol("Comlink.endpoint"),o=Symbol("Comlink.releaseProxy"),a=Symbol("Comlink.finalizer"),u=Symbol("Comlink.thrown"),c=e=>"object"==typeof e&&null!==e||"function"==typeof e,l={canHandle:e=>c(e)&&e[r],serialize(e){const{port1:t,port2:n}=new MessageChannel;return s(e,t),[n,[n]]},deserialize:e=>(e.start(),function(e){const t=new Map;return e.addEventListener("message",(function(e){const{data:n}=e;if(!n||!n.id)return;const r=t.get(n.id);if(r)try{r(n)}finally{t.delete(n.id)}})),g(e,t,[],void 0)}(e))},f=new Map([["proxy",l],["throw",{canHandle:e=>c(e)&&u in e,serialize({value:e}){let t;return t=e instanceof Error?{isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:{isError:!1,value:e},[t,[]]},deserialize(e){if(e.isError)throw Object.assign(new Error(e.value.message),e.value);throw e.value}}]]);function s(e,t=globalThis,n=["*"]){t.addEventListener("message",(function i(o){if(!o||!o.data)return;if(!function(e,t){for(const n of e){if(t===n||"*"===n)return!0;if(n instanceof RegExp&&n.test(t))return!0}return!1}(n,o.origin))return void console.warn(`Invalid origin '${o.origin}' for comlink proxy`);const{id:c,type:l,path:f}=Object.assign({path:[]},o.data),p=(o.data.argumentList||[]).map(h);let b;try{const t=f.slice(0,-1).reduce(((e,t)=>e[t]),e),n=f.reduce(((e,t)=>e[t]),e);switch(l){case"GET":b=n;break;case"SET":t[f.slice(-1)[0]]=h(o.data.value),b=!0;break;case"APPLY":b=n.apply(t,p);break;case"CONSTRUCT":b=function(e){return Object.assign(e,{[r]:!0})}(new n(...p));break;case"ENDPOINT":{const{port1:t,port2:n}=new MessageChannel;s(e,n),b=function(e,t){return P.set(e,t),e}(t,[t])}break;case"RELEASE":b=void 0;break;default:return}}catch(e){b={value:e,[u]:0}}Promise.resolve(b).catch((e=>({value:e,[u]:0}))).then((n=>{const[r,o]=j(n);t.postMessage(Object.assign(Object.assign({},r),{id:c}),o),"RELEASE"===l&&(t.removeEventListener("message",i),d(t),a in e&&"function"==typeof e[a]&&e[a]())})).catch((e=>{const[n,r]=j({value:new TypeError("Unserializable return value"),[u]:0});t.postMessage(Object.assign(Object.assign({},n),{id:c}),r)}))})),t.start&&t.start()}function d(e){(function(e){return"MessagePort"===e.constructor.name})(e)&&e.close()}function p(e){if(e)throw new Error("Proxy has been released and is not useable")}function b(e){return v(e,new Map,{type:"RELEASE"}).then((()=>{d(e)}))}const m=new WeakMap,y="FinalizationRegistry"in globalThis&&new FinalizationRegistry((e=>{const t=(m.get(e)||0)-1;m.set(e,t),0===t&&b(e)}));function g(e,t,n=[],r=function(){}){let a=!1;const u=new Proxy(r,{get(r,i){if(p(a),i===o)return()=>{!function(e){y&&y.unregister(e)}(u),b(e),t.clear(),a=!0};if("then"===i){if(0===n.length)return{then:()=>u};const r=v(e,t,{type:"GET",path:n.map((e=>e.toString()))}).then(h);return r.then.bind(r)}return g(e,t,[...n,i])},set(r,i,o){p(a);const[u,c]=j(o);return v(e,t,{type:"SET",path:[...n,i].map((e=>e.toString())),value:u},c).then(h)},apply(r,o,u){p(a);const c=n[n.length-1];if(c===i)return v(e,t,{type:"ENDPOINT"}).then(h);if("bind"===c)return g(e,t,n.slice(0,-1));const[l,f]=O(u);return v(e,t,{type:"APPLY",path:n.map((e=>e.toString())),argumentList:l},f).then(h)},construct(r,i){p(a);const[o,u]=O(i);return v(e,t,{type:"CONSTRUCT",path:n.map((e=>e.toString())),argumentList:o},u).then(h)}});return function(e,t){const n=(m.get(t)||0)+1;m.set(t,n),y&&y.register(e,t,e)}(u,e),u}function O(e){const t=e.map(j);return[t.map((e=>e[0])),(n=t.map((e=>e[1])),Array.prototype.concat.apply([],n))];var n}const P=new WeakMap;function j(e){for(const[t,n]of f)if(n.canHandle(e)){const[r,i]=n.serialize(e);return[{type:"HANDLER",name:t,value:r},i]}return[{type:"RAW",value:e},P.get(e)||[]]}function h(e){switch(e.type){case"HANDLER":return f.get(e.name).deserialize(e.value);case"RAW":return e.value}}function v(e,t,n,r){return new Promise((i=>{const o=new Array(4).fill(0).map((()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16))).join("-");t.set(o,i),e.start&&e.start(),e.postMessage(Object.assign({id:o},n),r)}))}},8135:(e,t,n)=>{var r=n(9907);Object.defineProperty(t,"__esModule",{value:!0});var i={react:!0,assertNode:!0,createTypeAnnotationBasedOnTypeof:!0,createUnionTypeAnnotation:!0,createFlowUnionType:!0,createTSUnionType:!0,cloneNode:!0,clone:!0,cloneDeep:!0,cloneDeepWithoutLoc:!0,cloneWithoutLoc:!0,addComment:!0,addComments:!0,inheritInnerComments:!0,inheritLeadingComments:!0,inheritsComments:!0,inheritTrailingComments:!0,removeComments:!0,ensureBlock:!0,toBindingIdentifierName:!0,toBlock:!0,toComputedKey:!0,toExpression:!0,toIdentifier:!0,toKeyAlias:!0,toStatement:!0,valueToNode:!0,appendToMemberExpression:!0,inherits:!0,prependToMemberExpression:!0,removeProperties:!0,removePropertiesDeep:!0,removeTypeDuplicates:!0,getAssignmentIdentifiers:!0,getBindingIdentifiers:!0,getOuterBindingIdentifiers:!0,getFunctionName:!0,traverse:!0,traverseFast:!0,shallowEqual:!0,is:!0,isBinding:!0,isBlockScoped:!0,isImmutable:!0,isLet:!0,isNode:!0,isNodesEquivalent:!0,isPlaceholderType:!0,isReferenced:!0,isScope:!0,isSpecifierDefault:!0,isType:!0,isValidES3Identifier:!0,isValidIdentifier:!0,isVar:!0,matchesPattern:!0,validate:!0,buildMatchMemberExpression:!0,__internal__deprecationWarning:!0};Object.defineProperty(t,"__internal__deprecationWarning",{enumerable:!0,get:function(){return ge.default}}),Object.defineProperty(t,"addComment",{enumerable:!0,get:function(){return j.default}}),Object.defineProperty(t,"addComments",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(t,"appendToMemberExpression",{enumerable:!0,get:function(){return z.default}}),Object.defineProperty(t,"assertNode",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(t,"buildMatchMemberExpression",{enumerable:!0,get:function(){return me.default}}),Object.defineProperty(t,"clone",{enumerable:!0,get:function(){return y.default}}),Object.defineProperty(t,"cloneDeep",{enumerable:!0,get:function(){return g.default}}),Object.defineProperty(t,"cloneDeepWithoutLoc",{enumerable:!0,get:function(){return O.default}}),Object.defineProperty(t,"cloneNode",{enumerable:!0,get:function(){return m.default}}),Object.defineProperty(t,"cloneWithoutLoc",{enumerable:!0,get:function(){return P.default}}),Object.defineProperty(t,"createFlowUnionType",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(t,"createTSUnionType",{enumerable:!0,get:function(){return d.default}}),Object.defineProperty(t,"createTypeAnnotationBasedOnTypeof",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(t,"createUnionTypeAnnotation",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(t,"ensureBlock",{enumerable:!0,get:function(){return C.default}}),Object.defineProperty(t,"getAssignmentIdentifiers",{enumerable:!0,get:function(){return q.default}}),Object.defineProperty(t,"getBindingIdentifiers",{enumerable:!0,get:function(){return G.default}}),Object.defineProperty(t,"getFunctionName",{enumerable:!0,get:function(){return Y.default}}),Object.defineProperty(t,"getOuterBindingIdentifiers",{enumerable:!0,get:function(){return H.default}}),Object.defineProperty(t,"inheritInnerComments",{enumerable:!0,get:function(){return v.default}}),Object.defineProperty(t,"inheritLeadingComments",{enumerable:!0,get:function(){return E.default}}),Object.defineProperty(t,"inheritTrailingComments",{enumerable:!0,get:function(){return _.default}}),Object.defineProperty(t,"inherits",{enumerable:!0,get:function(){return U.default}}),Object.defineProperty(t,"inheritsComments",{enumerable:!0,get:function(){return T.default}}),Object.defineProperty(t,"is",{enumerable:!0,get:function(){return Q.default}}),Object.defineProperty(t,"isBinding",{enumerable:!0,get:function(){return Z.default}}),Object.defineProperty(t,"isBlockScoped",{enumerable:!0,get:function(){return ee.default}}),Object.defineProperty(t,"isImmutable",{enumerable:!0,get:function(){return te.default}}),Object.defineProperty(t,"isLet",{enumerable:!0,get:function(){return ne.default}}),Object.defineProperty(t,"isNode",{enumerable:!0,get:function(){return re.default}}),Object.defineProperty(t,"isNodesEquivalent",{enumerable:!0,get:function(){return ie.default}}),Object.defineProperty(t,"isPlaceholderType",{enumerable:!0,get:function(){return oe.default}}),Object.defineProperty(t,"isReferenced",{enumerable:!0,get:function(){return ae.default}}),Object.defineProperty(t,"isScope",{enumerable:!0,get:function(){return ue.default}}),Object.defineProperty(t,"isSpecifierDefault",{enumerable:!0,get:function(){return ce.default}}),Object.defineProperty(t,"isType",{enumerable:!0,get:function(){return le.default}}),Object.defineProperty(t,"isValidES3Identifier",{enumerable:!0,get:function(){return fe.default}}),Object.defineProperty(t,"isValidIdentifier",{enumerable:!0,get:function(){return se.default}}),Object.defineProperty(t,"isVar",{enumerable:!0,get:function(){return de.default}}),Object.defineProperty(t,"matchesPattern",{enumerable:!0,get:function(){return pe.default}}),Object.defineProperty(t,"prependToMemberExpression",{enumerable:!0,get:function(){return W.default}}),t.react=void 0,Object.defineProperty(t,"removeComments",{enumerable:!0,get:function(){return w.default}}),Object.defineProperty(t,"removeProperties",{enumerable:!0,get:function(){return F.default}}),Object.defineProperty(t,"removePropertiesDeep",{enumerable:!0,get:function(){return K.default}}),Object.defineProperty(t,"removeTypeDuplicates",{enumerable:!0,get:function(){return V.default}}),Object.defineProperty(t,"shallowEqual",{enumerable:!0,get:function(){return J.default}}),Object.defineProperty(t,"toBindingIdentifierName",{enumerable:!0,get:function(){return M.default}}),Object.defineProperty(t,"toBlock",{enumerable:!0,get:function(){return N.default}}),Object.defineProperty(t,"toComputedKey",{enumerable:!0,get:function(){return A.default}}),Object.defineProperty(t,"toExpression",{enumerable:!0,get:function(){return I.default}}),Object.defineProperty(t,"toIdentifier",{enumerable:!0,get:function(){return B.default}}),Object.defineProperty(t,"toKeyAlias",{enumerable:!0,get:function(){return L.default}}),Object.defineProperty(t,"toStatement",{enumerable:!0,get:function(){return x.default}}),Object.defineProperty(t,"traverse",{enumerable:!0,get:function(){return X.default}}),Object.defineProperty(t,"traverseFast",{enumerable:!0,get:function(){return $.default}}),Object.defineProperty(t,"validate",{enumerable:!0,get:function(){return be.default}}),Object.defineProperty(t,"valueToNode",{enumerable:!0,get:function(){return R.default}});var o=n(737),a=n(6977),u=n(6503),c=n(2985),l=n(3289);Object.keys(l).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(i,e)||e in t&&t[e]===l[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return l[e]}}))}));var f=n(6461),s=n(5414),d=n(4534),p=n(2456);Object.keys(p).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(i,e)||e in t&&t[e]===p[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return p[e]}}))}));var b=n(3806);Object.keys(b).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(i,e)||e in t&&t[e]===b[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return b[e]}}))}));var m=n(6812),y=n(4780),g=n(9042),O=n(6248),P=n(861),j=n(9456),h=n(943),v=n(1515),E=n(8445),T=n(4494),_=n(6691),w=n(3890),k=n(5527);Object.keys(k).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(i,e)||e in t&&t[e]===k[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return k[e]}}))}));var S=n(9897);Object.keys(S).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(i,e)||e in t&&t[e]===S[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return S[e]}}))}));var C=n(1350),M=n(5847),N=n(8999),A=n(3544),I=n(5002),B=n(7627),L=n(5349),x=n(187),R=n(2485),D=n(9390);Object.keys(D).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(i,e)||e in t&&t[e]===D[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return D[e]}}))}));var z=n(1748),U=n(7937),W=n(6948),F=n(6944),K=n(5262),V=n(4538),q=n(8204),G=n(6676),H=n(8271),Y=n(6692),X=n(3998);Object.keys(X).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(i,e)||e in t&&t[e]===X[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return X[e]}}))}));var $=n(2148),J=n(6293),Q=n(947),Z=n(7166),ee=n(3358),te=n(4375),ne=n(266),re=n(4919),ie=n(4466),oe=n(3346),ae=n(3380),ue=n(8143),ce=n(8778),le=n(2379),fe=n(5467),se=n(8126),de=n(1342),pe=n(1782),be=n(8765),me=n(550),ye=n(133);Object.keys(ye).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(i,e)||e in t&&t[e]===ye[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return ye[e]}}))}));var ge=n(231),Oe=n(5827);t.react={isReactComponent:o.default,isCompatTag:a.default,buildChildren:u.default},t.toSequenceExpression=Oe.default,r.env.BABEL_TYPES_8_BREAKING&&console.warn("BABEL_TYPES_8_BREAKING is not supported anymore. Use the latest Babel 8.0.0 pre-release instead!")}}]);
|
|
3
|
-
//# sourceMappingURL=4957.b8513749.js.map
|