@next-bricks/vb-experiment 1.2.5 → 1.2.7

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.
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks/9425.d742e4d8.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/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/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/convertFormItem.ts","webpack:///../../src/convertForEach.ts","webpack:///../../src/convertIf.ts","webpack:///../../src/convertTsx.ts","webpack:///../../src/convertVariables.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\";\nimport type { ConvertOptions } from \"./interfaces.js\";\n\nexport function convertDataSources(\n dataSources: DataSource[],\n options: ConvertOptions\n): ContextConf[] {\n return dataSources.map(\n ({ name, http, api, params, entity, transform, rejectTransform }) => ({\n name: name,\n resolve: {\n ...(http\n ? {\n useProvider: \"basic.http-request\",\n args: [api, params],\n }\n : typeof entity === \"string\"\n ? {\n useProvider: `ai-portal.${api.toLowerCase().replace(\".\", \"-sdk-\")}`,\n args: [options.workspace, entity, 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 },\n track: true,\n })\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[],\n options: ConvertOptions\n): BrickEventHandler[] | undefined {\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: \"context.replace\",\n args: [handler.payload.name, handler.payload.value],\n };\n case \"refresh_data_source\":\n return {\n action: \"context.refresh\",\n args: [handler.payload.name],\n };\n case \"call_api\": {\n const { api, http, entity, 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 : typeof entity === \"string\"\n ? {\n useProvider: `ai-portal.${api.toLowerCase().replace(\".\", \"-sdk-\")}`,\n args: [options.workspace, entity, 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 \"show_message\":\n return {\n action: `message.${handler.payload.type}` as \"message.info\",\n args: [handler.payload.content],\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 { preevaluate, PreevaluateResult } from \"@next-core/cook\";\n\ninterface Replacement {\n id: t.Identifier;\n shorthand?: boolean;\n}\n\nexport function mergeReplacePatterns(\n pattern1: Map<string, string> | undefined,\n pattern2: Map<string, string> | undefined\n): Map<string, string> | undefined {\n if (pattern1 && pattern2) {\n return new Map([...pattern1, ...pattern2]);\n }\n return pattern1 || pattern2;\n}\n\nexport function replaceCTX(expr: string, contexts: string[]): string {\n const patterns = new Map(contexts.map((k) => [k, `CTX.${k}`]));\n return replaceVariables(expr, 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, 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(\n \"Parse evaluation string failed when scanning expression:\",\n error\n );\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","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): 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)\n )\n )\n ).flatMap((child) => deepReplaceVariables(child, patterns));\n\n return {\n ...column,\n useBrick,\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 const groupField = _groupField ? \"#showKey\" : undefined;\n\n const { isString, expression, usedContexts } = parseDataSource(dataSource);\n\n const chartData = isString\n ? `<%= CTX.__builtin_fn_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: `<% CTX.__builtin_fn_getMetricDisplayNames((${expression}).displayNameList, ${JSON.stringify(\n widget.relevantMetrics\n )}) %>`,\n }\n : {\n // yField: metric.id,\n yField: `<% CTX.__builtin_fn_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: `<%= CTX.__builtin_fn_groupMetricData(CTX.__builtin_fn_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: `<%= CTX.__builtin_fn_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: `<%= CTX.__builtin_fn_getLatestMetricValue((${\n isString\n ? `CTX.__builtin_fn_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 { 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\";\n\nexport async function convertComponent(\n component: Component,\n result: ParseResult,\n options: ConvertOptions\n): Promise<BrickConf | BrickConf[]> {\n let brick: BrickConf | null = null;\n switch (component.name) {\n case \"List\":\n brick = await convertList(component);\n break;\n case \"Table\":\n brick = await convertTable(component, result, options);\n break;\n case \"Descriptions\":\n brick = await convertDescriptions(component, result, options);\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 \"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 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.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)\n )\n )\n ).flat();\n\n if (component.name === \"Card\" && brick.children.length > 1) {\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): Promise<BrickConf> {\n const { dataSource, title, list, ...restProps } = properties as Partial<\n DescriptionsProps<object>\n > as Omit<DescriptionsProps<object>, \"list\"> & {\n dataSource: string | object;\n list: DescriptionItem[] | string;\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)\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 column: options.expanded ? 3 : 1,\n templateColumns: \"repeat(auto-fill,minmax(360px,1fr))\",\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, textContent } =\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 ...(textContent ? { textContent } : null),\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 { textContent } = properties as {\n textContent?: string;\n };\n\n return {\n brick: \"pre\",\n properties: {\n textContent,\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 },\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\";\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 type { ContextConf } from \"@next-core/types\";\nimport { pipes } from \"@easyops-cn/brick-next-pipes\";\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\";\n\nconst BUILTIN_FUNCTIONS: ContextConf[] = [\n {\n name: \"__builtin_fn_mergeTexts\",\n value: mergeTexts,\n },\n {\n name: \"__builtin_fn_getLatestMetricValue\",\n value: getLatestMetricValue,\n },\n {\n name: \"__builtin_fn_extractList\",\n value: extractList,\n },\n {\n name: \"__builtin_fn_groupMetricData\",\n value: groupMetricData,\n },\n {\n name: \"__builtin_fn_getMetricDisplayNames\",\n value: getMetricDisplayNames,\n },\n];\n\nexport async function convertTsx(\n result: ParseResult,\n options: ConvertOptions\n): Promise<ConvertResult> {\n const context: ContextConf[] = [\n ...convertDataSources(result.dataSources ?? [], options),\n ...convertVariables(result.variables ?? []),\n ...(options.withContexts\n ? Object.entries(options.withContexts).map(([name, value]) => ({\n name,\n value,\n }))\n : []),\n ...BUILTIN_FUNCTIONS,\n ];\n\n const children = (\n await Promise.all(\n result.components.map((component) =>\n convertComponent(component, result, options)\n )\n )\n ).flat();\n\n const needBox = result.components.every((component) =>\n [\"Form\", \"Descriptions\", \"Button\"].includes(component.name)\n );\n\n return {\n brick: {\n brick: \"eo-content-layout\",\n children: needBox ? [withBox(children, options)] : children,\n },\n context,\n };\n}\n\nfunction mergeTexts(\n ...items: (\n | { type: \"text\"; text: string }\n | { type: \"expression\"; value: unknown }\n )[]\n): string {\n const texts: string[] = [];\n for (const item of items) {\n if (item.type === \"text\") {\n texts.push(item.text.trim());\n } else {\n texts.push(mergeValuesAsText(item.value));\n }\n }\n return texts.join(\"\");\n}\n\nfunction mergeValuesAsText(value: unknown): string {\n if (Array.isArray(value)) {\n return value.map(mergeValuesAsText).join(\"\");\n }\n const type = typeof value;\n if (type === \"string\" || type === \"number\") {\n return String(value);\n }\n if (type === \"object\" && value !== null) {\n throw new Error(\"Can not render object as text\");\n }\n return \"\";\n}\n\nfunction getLatestMetricValue(\n list: Record<string, any>[] | undefined,\n {\n metric,\n precision,\n }: { metric: { id: string; unit: string }; precision?: number }\n) {\n const value = list?.findLast?.((item) => item[metric.id] != null)?.[\n metric.id\n ];\n const unit = metric.unit === \"load\" ? \"\" : metric.unit;\n return pipes.unitFormat(value, unit, precision).join(\"\");\n}\n\nfunction extractList<T = unknown>(data: T[] | { list: T[] }): T[] {\n if (Array.isArray(data)) {\n return data;\n }\n return data?.list;\n}\n\nfunction groupMetricData(list: Record<string, any>[], groupField: string) {\n if (!list || !Array.isArray(list) || list.length === 0) {\n return [];\n }\n const grouped = new Map<\n string,\n { group: string; list: Record<string, any>[] }\n >();\n for (const item of list) {\n const key = item[groupField];\n let groupedList = grouped.get(key);\n if (!groupedList) {\n grouped.set(key, (groupedList = { group: key, list: [] }));\n }\n groupedList.list.push(item);\n }\n return Array.from(grouped.values());\n}\n\nfunction getMetricDisplayNames(\n displayNameList:\n | { metric_name: string; metric_display_name: string }[]\n | undefined,\n metricNames: string[]\n): string[] {\n return metricNames.map(\n (metricName) =>\n displayNameList?.find((item) => item.metric_name === metricName)\n ?.metric_display_name ?? metricName\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 }) => ({\n name,\n value,\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}`, \"\"]);\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","entity","transform","rejectTransform","resolve","useProvider","args","toLowerCase","replace","workspace","isObject","translate","limit","limitBy","order","displayName","value","onReject","track","EXPRESSION_PREFIX_REG","EXPRESSION_SUFFIX_REG","parseDataSource","data","isString","expression","expr","trim","test","console","warn","JSON","stringify","embedded","usedContexts","strictCollectMemberUsage","convertEventHandlers","handler","list","Array","isArray","hdl","action","payload","_handler$callback","success","callback","error","target","componentId","method","type","content","convertEventHandler","filter","Boolean","length","VALID_IDENTIFIER_REG","getMemberAccessor","property","propertyStr","String","pick","_","convertToStoryboard","config","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","if","_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","variables","dataSourceToObjectIdMap","variableDepsMap","variable","deps","processedContexts","Set","find","context","add","dataSourceObjectId","variableDeps","dep","deepReplaceVariables","patterns","item","Object","fromEntries","entries","k","v","trimmed","isExpressionString","keys","some","includes","replacements","result","preevaluate","withParent","hooks","beforeVisitGlobal","node","parent","p","shorthand","computed","push","source","suffix","chunks","prevStart","i","start","end","substring","replaceVariables","columnUseBrickParams","COLORS","convertHexColorToRGBA","alpha","hex","slice","bigint","parseInt","convertComponent","component","_component$children","props","parsedDataSource","themeVariant","convertList","view","_columns$","columns","rowKey","pagination","restProps","configuredColumns","column","render","dataIndex","slot","convertedColumns","Promise","all","useBrick","child","flatMap","useChildren","key","scrollConfig","x","bordered","from","values","convertTable","title","configuredItems","convertedList","_ref2","label","templateColumns","convertDescriptions","cardTitle","convertCard","groupField","_groupField","widgets","chartData","mergedWidgets","metricGroups","groups","doGetPreGeneratedMetricGroups","getPreGeneratedMetricGroups","mergedMetrics","metricIds","w","metric","widget","mergedWidget","group","g","metrics","relevantMetrics","m","counterMetric","counter","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","convertFormItem","convertForEach","convertIf","_brick","_brick$properties","_brick$properties2","_brick$properties2$da","events","event","_component$events","click","search","convertEvents","flat","BUILTIN_FUNCTIONS","texts","_len","arguments","items","_key","mergeValuesAsText","_list$findLast","findLast","call","pipes","unitFormat","grouped","groupedList","displayNameList","metricNames","metricName","_displayNameList$find","_displayNameList$find2","metric_name","metric_display_name","convertTsx","_result$dataSources","_result$variables","withContexts","components","every","Error","remoteWorkerPromise","worker","getRemoteTsxParserWorker","Remote","wrap","Worker","URL","___CSS_LOADER_EXPORT___","module"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(globalThis.webpackChunk_next_bricks_vb_experiment=globalThis.webpackChunk_next_bricks_vb_experiment||[]).push([[3058],{7572:(e,t,r)=>{r.r(t),r.d(t,{TsxPlayground:()=>B});var n,o=r(918),i=r(6121),u=r(829),a=r(859),c=r(8769),l=r.n(c),d=r(7921),f=r(9475),s=r(1280),b=r(8247),p=r(563),m=r(8189),y=r(2518),g=r(5981),O=(r(5168),r(795)),P=r(8124),j=r(44);let h,v,E,_,x;const T=l().lazy((async()=>({default:await(0,b.asyncWrapBrick)("vs.code-editor",{onCodeChange:"code.change"})}))),k=[{filePath:"tsx-view/actions.d.ts",content:m},{filePath:"tsx-view/components.d.ts",content:y.replaceAll("export interface","interface")}],{defineElement:w,property:C}=(0,d.createDecorators)();let B;var A=new WeakMap,N=new WeakMap;class I extends s.ReactNextElement{constructor(){super(...arguments),(0,o.A)(this,A,v(this)),(0,o.A)(this,N,(E(this),_(this))),x(this)}get source(){return(0,u.A)(A,this)}set source(e){(0,i.A)(A,this,e)}get extraLibs(){return(0,u.A)(N,this)}set extraLibs(e){(0,i.A)(N,this,e)}render(){return l().createElement(L,{source:this.source,extraLibs:this.extraLibs})}}function M(e){switch(e){case"notice":return"Hint";case"warning":return"Warning";case"error":case"fatal":return"Error"}return e}function L(e){let{source:t,extraLibs:r}=e;const[n,o]=(0,c.useState)(null!=t?t:""),i=(0,c.useDeferredValue)(n),[u,a]=(0,c.useState)(),[d,s]=(0,c.useState)(),b=(0,c.useMemo)((()=>[...k,...null!=r?r:[]]),[r]),m=(0,c.useCallback)((e=>{o(e.detail)}),[]);(0,c.useEffect)((()=>{let e=!1;return async function(){const t=await(0,P.f)();if(e)return;const r=await t.parse(i);if(e)return;s(r);const n=r.errors.filter((e=>!!e.node));n.length>0?a(n.map((e=>({message:e.message,severity:M(e.severity),startLineNumber:e.node.loc.start.line,startColumn:e.node.loc.start.column+1,endLineNumber:e.node.loc.end.line,endColumn:e.node.loc.end.column+1})))):a(void 0)}(),()=>{e=!0}}),[i]);const y=(0,c.useMemo)((()=>(0,p.uniqueId)()),[]),h=(0,c.useRef)(null),v=(0,c.useRef)(null);return(0,c.useEffect)((()=>{const e=h.current;if(!e)return;const t=(0,j.d)(y),r=(0,f.unstable_createRoot)(e,{portal:t,supportsUseChildren:!0});return v.current=r,()=>{r.unmount(),t.remove(),v.current=null}}),[y]),(0,c.useEffect)((()=>{let e=!1;return(async()=>{if(!d)return;let t;try{var r;if(t=await(0,g.d)(d,{rootId:y,expanded:!0}),e)return;const{brick:n,context:o}=null!=t?t:{};await(null===(r=v.current)||void 0===r?void 0:r.render(null!=n?n:[],{context:o}))}catch(e){var n;console.error("Failed to render view:",e),null===(n=v.current)||void 0===n||n.render({brick:customElements.get("easyops-default-error")?"easyops-default-error":"div",properties:{errorTitle:"解析失败",dataset:{errorBoundary:""},style:{color:"var(--color-error)"}},children:[{brick:"div",properties:{textContent:(0,f.httpErrorToString)(e)}}]})}})(),()=>{e=!0}}),[y,d]),l().createElement("div",{className:O.A.container},l().createElement("div",{className:O.A.editor},l().createElement(c.Suspense,{fallback:"Loading..."},l().createElement(T,{value:t,onCodeChange:m,language:"typescript",uri:"file:///view.tsx",automaticLayout:"fit-container",theme:"tm-vs-dark",extraLibs:b,extraMarkers:u,"data-override-theme":"dark-v2"}))),l().createElement("div",{className:O.A.preview},l().createElement("div",{"data-root-id":y,ref:h})))}n=I,({e:[v,E,_,x],c:[B,h]}=(0,a.A)(n,[w("vb-experiment.tsx-playground",{shadowOptions:!1})],[[C({attribute:!1}),1,"source"],[C({attribute:!1}),1,"extraLibs"]],0,void 0,s.ReactNextElement)),h()},8135:(e,t,r)=>{var n=r(9907);Object.defineProperty(t,"__esModule",{value:!0});var o={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 W.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 f.default}}),Object.defineProperty(t,"createTSUnionType",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(t,"createTypeAnnotationBasedOnTypeof",{enumerable:!0,get:function(){return d.default}}),Object.defineProperty(t,"createUnionTypeAnnotation",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(t,"ensureBlock",{enumerable:!0,get:function(){return C.default}}),Object.defineProperty(t,"getAssignmentIdentifiers",{enumerable:!0,get:function(){return G.default}}),Object.defineProperty(t,"getBindingIdentifiers",{enumerable:!0,get:function(){return Y.default}}),Object.defineProperty(t,"getFunctionName",{enumerable:!0,get:function(){return H.default}}),Object.defineProperty(t,"getOuterBindingIdentifiers",{enumerable:!0,get:function(){return z.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 x.default}}),Object.defineProperty(t,"inherits",{enumerable:!0,get:function(){return U.default}}),Object.defineProperty(t,"inheritsComments",{enumerable:!0,get:function(){return _.default}}),Object.defineProperty(t,"is",{enumerable:!0,get:function(){return Z.default}}),Object.defineProperty(t,"isBinding",{enumerable:!0,get:function(){return $.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 re.default}}),Object.defineProperty(t,"isNode",{enumerable:!0,get:function(){return ne.default}}),Object.defineProperty(t,"isNodesEquivalent",{enumerable:!0,get:function(){return oe.default}}),Object.defineProperty(t,"isPlaceholderType",{enumerable:!0,get:function(){return ie.default}}),Object.defineProperty(t,"isReferenced",{enumerable:!0,get:function(){return ue.default}}),Object.defineProperty(t,"isScope",{enumerable:!0,get:function(){return ae.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 de.default}}),Object.defineProperty(t,"isValidIdentifier",{enumerable:!0,get:function(){return fe.default}}),Object.defineProperty(t,"isVar",{enumerable:!0,get:function(){return se.default}}),Object.defineProperty(t,"matchesPattern",{enumerable:!0,get:function(){return be.default}}),Object.defineProperty(t,"prependToMemberExpression",{enumerable:!0,get:function(){return F.default}}),t.react=void 0,Object.defineProperty(t,"removeComments",{enumerable:!0,get:function(){return T.default}}),Object.defineProperty(t,"removeProperties",{enumerable:!0,get:function(){return V.default}}),Object.defineProperty(t,"removePropertiesDeep",{enumerable:!0,get:function(){return q.default}}),Object.defineProperty(t,"removeTypeDuplicates",{enumerable:!0,get:function(){return K.default}}),Object.defineProperty(t,"shallowEqual",{enumerable:!0,get:function(){return X.default}}),Object.defineProperty(t,"toBindingIdentifierName",{enumerable:!0,get:function(){return B.default}}),Object.defineProperty(t,"toBlock",{enumerable:!0,get:function(){return A.default}}),Object.defineProperty(t,"toComputedKey",{enumerable:!0,get:function(){return N.default}}),Object.defineProperty(t,"toExpression",{enumerable:!0,get:function(){return I.default}}),Object.defineProperty(t,"toIdentifier",{enumerable:!0,get:function(){return M.default}}),Object.defineProperty(t,"toKeyAlias",{enumerable:!0,get:function(){return L.default}}),Object.defineProperty(t,"toStatement",{enumerable:!0,get:function(){return S.default}}),Object.defineProperty(t,"traverse",{enumerable:!0,get:function(){return J.default}}),Object.defineProperty(t,"traverseFast",{enumerable:!0,get:function(){return Q.default}}),Object.defineProperty(t,"validate",{enumerable:!0,get:function(){return pe.default}}),Object.defineProperty(t,"valueToNode",{enumerable:!0,get:function(){return D.default}});var i=r(737),u=r(6977),a=r(6503),c=r(2985),l=r(3289);Object.keys(l).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(o,e)||e in t&&t[e]===l[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return l[e]}}))}));var d=r(6461),f=r(5414),s=r(4534),b=r(2456);Object.keys(b).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(o,e)||e in t&&t[e]===b[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return b[e]}}))}));var p=r(3806);Object.keys(p).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(o,e)||e in t&&t[e]===p[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return p[e]}}))}));var m=r(6812),y=r(4780),g=r(9042),O=r(6248),P=r(861),j=r(9456),h=r(943),v=r(1515),E=r(8445),_=r(4494),x=r(6691),T=r(3890),k=r(5527);Object.keys(k).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(o,e)||e in t&&t[e]===k[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return k[e]}}))}));var w=r(9897);Object.keys(w).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(o,e)||e in t&&t[e]===w[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return w[e]}}))}));var C=r(1350),B=r(5847),A=r(8999),N=r(3544),I=r(5002),M=r(7627),L=r(5349),S=r(187),D=r(2485),R=r(9390);Object.keys(R).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(o,e)||e in t&&t[e]===R[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return R[e]}}))}));var W=r(1748),U=r(7937),F=r(6948),V=r(6944),q=r(5262),K=r(4538),G=r(8204),Y=r(6676),z=r(8271),H=r(6692),J=r(3998);Object.keys(J).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(o,e)||e in t&&t[e]===J[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return J[e]}}))}));var Q=r(2148),X=r(6293),Z=r(947),$=r(7166),ee=r(3358),te=r(4375),re=r(266),ne=r(4919),oe=r(4466),ie=r(3346),ue=r(3380),ae=r(8143),ce=r(8778),le=r(2379),de=r(5467),fe=r(8126),se=r(1342),be=r(1782),pe=r(8765),me=r(550),ye=r(133);Object.keys(ye).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(o,e)||e in t&&t[e]===ye[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return ye[e]}}))}));var ge=r(231),Oe=r(5827);t.react={isReactComponent:i.default,isCompatTag:u.default,buildChildren:a.default},t.toSequenceExpression=Oe.default,n.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!")}}]);
2
- //# sourceMappingURL=tsx-playground.7f8c0564.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks/tsx-playground.7f8c0564.js","mappings":"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","sources":["webpack:///./src/tsx-playground/index.tsx","webpack:///../../node_modules/@babel/types/lib/index.js"],"sourcesContent":["import React, {\n Suspense,\n useCallback,\n useDeferredValue,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { httpErrorToString, unstable_createRoot } from \"@next-core/runtime\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport { asyncWrapBrick } from \"@next-core/react-runtime\";\nimport { uniqueId } from \"lodash\";\nimport type {\n CodeEditor,\n CodeEditorProps,\n ExtraLib,\n ExtraMarker,\n} from \"@next-bricks/vs/code-editor\";\nimport actionsDefinition from \"@next-shared/tsx-converter/lib/actions.d.ts?raw\";\nimport componentsDefinition from \"@next-shared/tsx-converter/lib/components.d.ts?raw\";\nimport { convertTsx, type ConvertResult } from \"@next-shared/tsx-converter\";\nimport type { ParseResult } from \"@next-shared/tsx-parser\";\nimport \"@next-core/theme\";\nimport styles from \"./styles.module.css\";\nimport { getRemoteTsxParserWorker } from \"./workers/tsxParser.js\";\nimport { createPortal } from \"./createPortal.js\";\n\ninterface CodeEditorEvents {\n \"code.change\": CustomEvent<string>;\n}\n\ninterface CodeEditorMapEvents {\n onCodeChange: \"code.change\";\n}\n\nconst AsyncWrappedCodeEditor = React.lazy(async () => ({\n default: await asyncWrapBrick<\n CodeEditor,\n CodeEditorProps,\n CodeEditorEvents,\n CodeEditorMapEvents\n >(\"vs.code-editor\", {\n onCodeChange: \"code.change\",\n }),\n}));\n\nconst BUILTIN_LIBS: ExtraLib[] = [\n {\n filePath: \"tsx-view/actions.d.ts\",\n content: actionsDefinition,\n },\n {\n filePath: \"tsx-view/components.d.ts\",\n content: componentsDefinition.replaceAll(\"export interface\", \"interface\"),\n },\n // {\n // filePath: \"tsx-view/contracts.d.ts\",\n // content: `type ContractMap = Record<string, any>;`,\n // },\n];\n\nconst { defineElement, property } = createDecorators();\n\nexport interface TsxPlaygroundProps {\n source?: string;\n extraLibs?: ExtraLib[];\n}\n\n/**\n * 构件 `vb-experiment.tsx-playground`\n */\nexport\n@defineElement(\"vb-experiment.tsx-playground\", {\n // Monaco editor does not work well with shadow DOM\n shadowOptions: false,\n})\nclass TsxPlayground extends ReactNextElement implements TsxPlaygroundProps {\n /** 仅初始有效 */\n @property({ attribute: false })\n accessor source: string | undefined;\n\n @property({ attribute: false })\n accessor extraLibs: ExtraLib[] | undefined;\n\n render() {\n return (\n <TsxPlaygroundComponent source={this.source} extraLibs={this.extraLibs} />\n );\n }\n}\n\ninterface TsxPlaygroundComponentProps extends TsxPlaygroundProps {\n onCodeChange?: () => void;\n}\n\nfunction convertSeverity(\n severity: \"notice\" | \"warning\" | \"error\" | \"fatal\"\n): \"Hint\" | \"Info\" | \"Warning\" | \"Error\" {\n switch (severity) {\n case \"notice\":\n return \"Hint\";\n case \"warning\":\n return \"Warning\";\n case \"error\":\n return \"Error\";\n case \"fatal\":\n return \"Error\";\n }\n return severity;\n}\n\nfunction TsxPlaygroundComponent({\n source,\n extraLibs,\n}: TsxPlaygroundComponentProps) {\n const [code, setCode] = useState(source ?? \"\");\n const deferredCode = useDeferredValue(code);\n const [markers, setMarkers] = useState<ExtraMarker[] | undefined>();\n const [view, setView] = useState<ParseResult | undefined>();\n\n const allLibs = useMemo(\n () => [...BUILTIN_LIBS, ...(extraLibs ?? [])],\n [extraLibs]\n );\n\n const handleCodeChange = useCallback((e: CustomEvent<string>) => {\n setCode(e.detail);\n }, []);\n useEffect(() => {\n let ignore = false;\n (async function run() {\n const worker = await getRemoteTsxParserWorker();\n if (ignore) {\n return;\n }\n const result = await worker.parse(deferredCode);\n if (ignore) {\n return;\n }\n setView(result);\n const withNodeErrors = result.errors.filter((err) => !!err.node);\n if (withNodeErrors.length > 0) {\n setMarkers(\n withNodeErrors.map((error) => ({\n message: error.message,\n severity: convertSeverity(error.severity),\n startLineNumber: error.node!.loc!.start.line,\n startColumn: error.node!.loc!.start.column + 1,\n endLineNumber: error.node!.loc!.end.line,\n endColumn: error.node!.loc!.end.column + 1,\n }))\n );\n } else {\n setMarkers(undefined);\n }\n if (ignore) {\n return;\n }\n })();\n return () => {\n ignore = true;\n };\n }, [deferredCode]);\n\n const rootId = useMemo(() => uniqueId(), []);\n const ref = useRef<HTMLDivElement>(null);\n const rootRef = useRef<Awaited<\n ReturnType<typeof unstable_createRoot>\n > | null>(null);\n\n useEffect(() => {\n const container = ref.current;\n if (!container) {\n return;\n }\n const portal = createPortal(rootId);\n const root = unstable_createRoot(container, {\n portal,\n supportsUseChildren: true,\n } as any);\n rootRef.current = root;\n\n return () => {\n root.unmount();\n portal.remove();\n rootRef.current = null;\n };\n }, [rootId]);\n\n // const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n let ignore = false;\n (async () => {\n if (!view) {\n return;\n }\n // setLoading(true);\n let convertedView: ConvertResult | undefined;\n try {\n convertedView = await convertTsx(view, { rootId, expanded: true });\n if (ignore) {\n return;\n }\n const { brick, context } = convertedView ?? {};\n await rootRef.current?.render(brick ?? [], { context });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Failed to render view:\", error);\n rootRef.current?.render({\n brick: customElements.get(\"easyops-default-error\")\n ? \"easyops-default-error\"\n : \"div\",\n properties: {\n errorTitle: \"解析失败\",\n dataset: {\n errorBoundary: \"\",\n },\n style: {\n color: \"var(--color-error)\",\n },\n },\n children: [\n {\n brick: \"div\",\n properties: {\n textContent: httpErrorToString(error),\n },\n },\n ],\n });\n }\n // if (!ignore) {\n // setLoading(false);\n // }\n })();\n\n return () => {\n ignore = true;\n };\n }, [rootId, view]);\n\n return (\n <div className={styles.container}>\n <div className={styles.editor}>\n <Suspense fallback=\"Loading...\">\n <AsyncWrappedCodeEditor\n value={source}\n onCodeChange={handleCodeChange}\n language=\"typescript\"\n uri=\"file:///view.tsx\"\n automaticLayout=\"fit-container\"\n theme=\"tm-vs-dark\"\n extraLibs={allLibs}\n extraMarkers={markers}\n data-override-theme=\"dark-v2\"\n />\n </Suspense>\n </div>\n <div className={styles.preview}>\n <div data-root-id={rootId} ref={ref} />\n </div>\n </div>\n );\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _exportNames = {\n react: true,\n assertNode: true,\n createTypeAnnotationBasedOnTypeof: true,\n createUnionTypeAnnotation: true,\n createFlowUnionType: true,\n createTSUnionType: true,\n cloneNode: true,\n clone: true,\n cloneDeep: true,\n cloneDeepWithoutLoc: true,\n cloneWithoutLoc: true,\n addComment: true,\n addComments: true,\n inheritInnerComments: true,\n inheritLeadingComments: true,\n inheritsComments: true,\n inheritTrailingComments: true,\n removeComments: true,\n ensureBlock: true,\n toBindingIdentifierName: true,\n toBlock: true,\n toComputedKey: true,\n toExpression: true,\n toIdentifier: true,\n toKeyAlias: true,\n toStatement: true,\n valueToNode: true,\n appendToMemberExpression: true,\n inherits: true,\n prependToMemberExpression: true,\n removeProperties: true,\n removePropertiesDeep: true,\n removeTypeDuplicates: true,\n getAssignmentIdentifiers: true,\n getBindingIdentifiers: true,\n getOuterBindingIdentifiers: true,\n getFunctionName: true,\n traverse: true,\n traverseFast: true,\n shallowEqual: true,\n is: true,\n isBinding: true,\n isBlockScoped: true,\n isImmutable: true,\n isLet: true,\n isNode: true,\n isNodesEquivalent: true,\n isPlaceholderType: true,\n isReferenced: true,\n isScope: true,\n isSpecifierDefault: true,\n isType: true,\n isValidES3Identifier: true,\n isValidIdentifier: true,\n isVar: true,\n matchesPattern: true,\n validate: true,\n buildMatchMemberExpression: true,\n __internal__deprecationWarning: true\n};\nObject.defineProperty(exports, \"__internal__deprecationWarning\", {\n enumerable: true,\n get: function () {\n return _deprecationWarning.default;\n }\n});\nObject.defineProperty(exports, \"addComment\", {\n enumerable: true,\n get: function () {\n return _addComment.default;\n }\n});\nObject.defineProperty(exports, \"addComments\", {\n enumerable: true,\n get: function () {\n return _addComments.default;\n }\n});\nObject.defineProperty(exports, \"appendToMemberExpression\", {\n enumerable: true,\n get: function () {\n return _appendToMemberExpression.default;\n }\n});\nObject.defineProperty(exports, \"assertNode\", {\n enumerable: true,\n get: function () {\n return _assertNode.default;\n }\n});\nObject.defineProperty(exports, \"buildMatchMemberExpression\", {\n enumerable: true,\n get: function () {\n return _buildMatchMemberExpression.default;\n }\n});\nObject.defineProperty(exports, \"clone\", {\n enumerable: true,\n get: function () {\n return _clone.default;\n }\n});\nObject.defineProperty(exports, \"cloneDeep\", {\n enumerable: true,\n get: function () {\n return _cloneDeep.default;\n }\n});\nObject.defineProperty(exports, \"cloneDeepWithoutLoc\", {\n enumerable: true,\n get: function () {\n return _cloneDeepWithoutLoc.default;\n }\n});\nObject.defineProperty(exports, \"cloneNode\", {\n enumerable: true,\n get: function () {\n return _cloneNode.default;\n }\n});\nObject.defineProperty(exports, \"cloneWithoutLoc\", {\n enumerable: true,\n get: function () {\n return _cloneWithoutLoc.default;\n }\n});\nObject.defineProperty(exports, \"createFlowUnionType\", {\n enumerable: true,\n get: function () {\n return _createFlowUnionType.default;\n }\n});\nObject.defineProperty(exports, \"createTSUnionType\", {\n enumerable: true,\n get: function () {\n return _createTSUnionType.default;\n }\n});\nObject.defineProperty(exports, \"createTypeAnnotationBasedOnTypeof\", {\n enumerable: true,\n get: function () {\n return _createTypeAnnotationBasedOnTypeof.default;\n }\n});\nObject.defineProperty(exports, \"createUnionTypeAnnotation\", {\n enumerable: true,\n get: function () {\n return _createFlowUnionType.default;\n }\n});\nObject.defineProperty(exports, \"ensureBlock\", {\n enumerable: true,\n get: function () {\n return _ensureBlock.default;\n }\n});\nObject.defineProperty(exports, \"getAssignmentIdentifiers\", {\n enumerable: true,\n get: function () {\n return _getAssignmentIdentifiers.default;\n }\n});\nObject.defineProperty(exports, \"getBindingIdentifiers\", {\n enumerable: true,\n get: function () {\n return _getBindingIdentifiers.default;\n }\n});\nObject.defineProperty(exports, \"getFunctionName\", {\n enumerable: true,\n get: function () {\n return _getFunctionName.default;\n }\n});\nObject.defineProperty(exports, \"getOuterBindingIdentifiers\", {\n enumerable: true,\n get: function () {\n return _getOuterBindingIdentifiers.default;\n }\n});\nObject.defineProperty(exports, \"inheritInnerComments\", {\n enumerable: true,\n get: function () {\n return _inheritInnerComments.default;\n }\n});\nObject.defineProperty(exports, \"inheritLeadingComments\", {\n enumerable: true,\n get: function () {\n return _inheritLeadingComments.default;\n }\n});\nObject.defineProperty(exports, \"inheritTrailingComments\", {\n enumerable: true,\n get: function () {\n return _inheritTrailingComments.default;\n }\n});\nObject.defineProperty(exports, \"inherits\", {\n enumerable: true,\n get: function () {\n return _inherits.default;\n }\n});\nObject.defineProperty(exports, \"inheritsComments\", {\n enumerable: true,\n get: function () {\n return _inheritsComments.default;\n }\n});\nObject.defineProperty(exports, \"is\", {\n enumerable: true,\n get: function () {\n return _is.default;\n }\n});\nObject.defineProperty(exports, \"isBinding\", {\n enumerable: true,\n get: function () {\n return _isBinding.default;\n }\n});\nObject.defineProperty(exports, \"isBlockScoped\", {\n enumerable: true,\n get: function () {\n return _isBlockScoped.default;\n }\n});\nObject.defineProperty(exports, \"isImmutable\", {\n enumerable: true,\n get: function () {\n return _isImmutable.default;\n }\n});\nObject.defineProperty(exports, \"isLet\", {\n enumerable: true,\n get: function () {\n return _isLet.default;\n }\n});\nObject.defineProperty(exports, \"isNode\", {\n enumerable: true,\n get: function () {\n return _isNode.default;\n }\n});\nObject.defineProperty(exports, \"isNodesEquivalent\", {\n enumerable: true,\n get: function () {\n return _isNodesEquivalent.default;\n }\n});\nObject.defineProperty(exports, \"isPlaceholderType\", {\n enumerable: true,\n get: function () {\n return _isPlaceholderType.default;\n }\n});\nObject.defineProperty(exports, \"isReferenced\", {\n enumerable: true,\n get: function () {\n return _isReferenced.default;\n }\n});\nObject.defineProperty(exports, \"isScope\", {\n enumerable: true,\n get: function () {\n return _isScope.default;\n }\n});\nObject.defineProperty(exports, \"isSpecifierDefault\", {\n enumerable: true,\n get: function () {\n return _isSpecifierDefault.default;\n }\n});\nObject.defineProperty(exports, \"isType\", {\n enumerable: true,\n get: function () {\n return _isType.default;\n }\n});\nObject.defineProperty(exports, \"isValidES3Identifier\", {\n enumerable: true,\n get: function () {\n return _isValidES3Identifier.default;\n }\n});\nObject.defineProperty(exports, \"isValidIdentifier\", {\n enumerable: true,\n get: function () {\n return _isValidIdentifier.default;\n }\n});\nObject.defineProperty(exports, \"isVar\", {\n enumerable: true,\n get: function () {\n return _isVar.default;\n }\n});\nObject.defineProperty(exports, \"matchesPattern\", {\n enumerable: true,\n get: function () {\n return _matchesPattern.default;\n }\n});\nObject.defineProperty(exports, \"prependToMemberExpression\", {\n enumerable: true,\n get: function () {\n return _prependToMemberExpression.default;\n }\n});\nexports.react = void 0;\nObject.defineProperty(exports, \"removeComments\", {\n enumerable: true,\n get: function () {\n return _removeComments.default;\n }\n});\nObject.defineProperty(exports, \"removeProperties\", {\n enumerable: true,\n get: function () {\n return _removeProperties.default;\n }\n});\nObject.defineProperty(exports, \"removePropertiesDeep\", {\n enumerable: true,\n get: function () {\n return _removePropertiesDeep.default;\n }\n});\nObject.defineProperty(exports, \"removeTypeDuplicates\", {\n enumerable: true,\n get: function () {\n return _removeTypeDuplicates.default;\n }\n});\nObject.defineProperty(exports, \"shallowEqual\", {\n enumerable: true,\n get: function () {\n return _shallowEqual.default;\n }\n});\nObject.defineProperty(exports, \"toBindingIdentifierName\", {\n enumerable: true,\n get: function () {\n return _toBindingIdentifierName.default;\n }\n});\nObject.defineProperty(exports, \"toBlock\", {\n enumerable: true,\n get: function () {\n return _toBlock.default;\n }\n});\nObject.defineProperty(exports, \"toComputedKey\", {\n enumerable: true,\n get: function () {\n return _toComputedKey.default;\n }\n});\nObject.defineProperty(exports, \"toExpression\", {\n enumerable: true,\n get: function () {\n return _toExpression.default;\n }\n});\nObject.defineProperty(exports, \"toIdentifier\", {\n enumerable: true,\n get: function () {\n return _toIdentifier.default;\n }\n});\nObject.defineProperty(exports, \"toKeyAlias\", {\n enumerable: true,\n get: function () {\n return _toKeyAlias.default;\n }\n});\nObject.defineProperty(exports, \"toStatement\", {\n enumerable: true,\n get: function () {\n return _toStatement.default;\n }\n});\nObject.defineProperty(exports, \"traverse\", {\n enumerable: true,\n get: function () {\n return _traverse.default;\n }\n});\nObject.defineProperty(exports, \"traverseFast\", {\n enumerable: true,\n get: function () {\n return _traverseFast.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"valueToNode\", {\n enumerable: true,\n get: function () {\n return _valueToNode.default;\n }\n});\nvar _isReactComponent = require(\"./validators/react/isReactComponent.js\");\nvar _isCompatTag = require(\"./validators/react/isCompatTag.js\");\nvar _buildChildren = require(\"./builders/react/buildChildren.js\");\nvar _assertNode = require(\"./asserts/assertNode.js\");\nvar _index = require(\"./asserts/generated/index.js\");\nObject.keys(_index).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _index[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index[key];\n }\n });\n});\nvar _createTypeAnnotationBasedOnTypeof = require(\"./builders/flow/createTypeAnnotationBasedOnTypeof.js\");\nvar _createFlowUnionType = require(\"./builders/flow/createFlowUnionType.js\");\nvar _createTSUnionType = require(\"./builders/typescript/createTSUnionType.js\");\nvar _productions = require(\"./builders/productions.js\");\nObject.keys(_productions).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _productions[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _productions[key];\n }\n });\n});\nvar _index2 = require(\"./builders/generated/index.js\");\nObject.keys(_index2).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _index2[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index2[key];\n }\n });\n});\nvar _cloneNode = require(\"./clone/cloneNode.js\");\nvar _clone = require(\"./clone/clone.js\");\nvar _cloneDeep = require(\"./clone/cloneDeep.js\");\nvar _cloneDeepWithoutLoc = require(\"./clone/cloneDeepWithoutLoc.js\");\nvar _cloneWithoutLoc = require(\"./clone/cloneWithoutLoc.js\");\nvar _addComment = require(\"./comments/addComment.js\");\nvar _addComments = require(\"./comments/addComments.js\");\nvar _inheritInnerComments = require(\"./comments/inheritInnerComments.js\");\nvar _inheritLeadingComments = require(\"./comments/inheritLeadingComments.js\");\nvar _inheritsComments = require(\"./comments/inheritsComments.js\");\nvar _inheritTrailingComments = require(\"./comments/inheritTrailingComments.js\");\nvar _removeComments = require(\"./comments/removeComments.js\");\nvar _index3 = require(\"./constants/generated/index.js\");\nObject.keys(_index3).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _index3[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index3[key];\n }\n });\n});\nvar _index4 = require(\"./constants/index.js\");\nObject.keys(_index4).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _index4[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index4[key];\n }\n });\n});\nvar _ensureBlock = require(\"./converters/ensureBlock.js\");\nvar _toBindingIdentifierName = require(\"./converters/toBindingIdentifierName.js\");\nvar _toBlock = require(\"./converters/toBlock.js\");\nvar _toComputedKey = require(\"./converters/toComputedKey.js\");\nvar _toExpression = require(\"./converters/toExpression.js\");\nvar _toIdentifier = require(\"./converters/toIdentifier.js\");\nvar _toKeyAlias = require(\"./converters/toKeyAlias.js\");\nvar _toStatement = require(\"./converters/toStatement.js\");\nvar _valueToNode = require(\"./converters/valueToNode.js\");\nvar _index5 = require(\"./definitions/index.js\");\nObject.keys(_index5).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _index5[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index5[key];\n }\n });\n});\nvar _appendToMemberExpression = require(\"./modifications/appendToMemberExpression.js\");\nvar _inherits = require(\"./modifications/inherits.js\");\nvar _prependToMemberExpression = require(\"./modifications/prependToMemberExpression.js\");\nvar _removeProperties = require(\"./modifications/removeProperties.js\");\nvar _removePropertiesDeep = require(\"./modifications/removePropertiesDeep.js\");\nvar _removeTypeDuplicates = require(\"./modifications/flow/removeTypeDuplicates.js\");\nvar _getAssignmentIdentifiers = require(\"./retrievers/getAssignmentIdentifiers.js\");\nvar _getBindingIdentifiers = require(\"./retrievers/getBindingIdentifiers.js\");\nvar _getOuterBindingIdentifiers = require(\"./retrievers/getOuterBindingIdentifiers.js\");\nvar _getFunctionName = require(\"./retrievers/getFunctionName.js\");\nvar _traverse = require(\"./traverse/traverse.js\");\nObject.keys(_traverse).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _traverse[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _traverse[key];\n }\n });\n});\nvar _traverseFast = require(\"./traverse/traverseFast.js\");\nvar _shallowEqual = require(\"./utils/shallowEqual.js\");\nvar _is = require(\"./validators/is.js\");\nvar _isBinding = require(\"./validators/isBinding.js\");\nvar _isBlockScoped = require(\"./validators/isBlockScoped.js\");\nvar _isImmutable = require(\"./validators/isImmutable.js\");\nvar _isLet = require(\"./validators/isLet.js\");\nvar _isNode = require(\"./validators/isNode.js\");\nvar _isNodesEquivalent = require(\"./validators/isNodesEquivalent.js\");\nvar _isPlaceholderType = require(\"./validators/isPlaceholderType.js\");\nvar _isReferenced = require(\"./validators/isReferenced.js\");\nvar _isScope = require(\"./validators/isScope.js\");\nvar _isSpecifierDefault = require(\"./validators/isSpecifierDefault.js\");\nvar _isType = require(\"./validators/isType.js\");\nvar _isValidES3Identifier = require(\"./validators/isValidES3Identifier.js\");\nvar _isValidIdentifier = require(\"./validators/isValidIdentifier.js\");\nvar _isVar = require(\"./validators/isVar.js\");\nvar _matchesPattern = require(\"./validators/matchesPattern.js\");\nvar _validate = require(\"./validators/validate.js\");\nvar _buildMatchMemberExpression = require(\"./validators/buildMatchMemberExpression.js\");\nvar _index6 = require(\"./validators/generated/index.js\");\nObject.keys(_index6).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _index6[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index6[key];\n }\n });\n});\nvar _deprecationWarning = require(\"./utils/deprecationWarning.js\");\nvar _toSequenceExpression = require(\"./converters/toSequenceExpression.js\");\nconst react = exports.react = {\n isReactComponent: _isReactComponent.default,\n isCompatTag: _isCompatTag.default,\n buildChildren: _buildChildren.default\n};\n{\n exports.toSequenceExpression = _toSequenceExpression.default;\n}\nif (process.env.BABEL_TYPES_8_BREAKING) {\n console.warn(\"BABEL_TYPES_8_BREAKING is not supported anymore. Use the latest Babel 8.0.0 pre-release instead!\");\n}\n\n//# sourceMappingURL=index.js.map\n"],"names":["AsyncWrappedCodeEditor","React","async","default","asyncWrapBrick","onCodeChange","BUILTIN_LIBS","filePath","content","actionsDefinition","componentsDefinition","replaceAll","defineElement","property","createDecorators","_TsxPlayground","_A","WeakMap","_B","TsxPlayground","ReactNextElement","constructor","arguments","_classPrivateFieldInitSpec","_init_source","_init_extra_source","_init_extraLibs","_init_extra_extraLibs","source","_classPrivateFieldGet","v","_classPrivateFieldSet","extraLibs","render","TsxPlaygroundComponent","this","convertSeverity","severity","_ref","code","setCode","useState","deferredCode","useDeferredValue","markers","setMarkers","view","setView","allLibs","useMemo","handleCodeChange","useCallback","e","detail","useEffect","ignore","worker","getRemoteTsxParserWorker","result","parse","withNodeErrors","errors","filter","err","node","length","map","error","message","startLineNumber","loc","start","line","startColumn","column","endLineNumber","end","endColumn","undefined","rootId","uniqueId","ref","useRef","rootRef","container","current","portal","createPortal","root","unstable_createRoot","supportsUseChildren","unmount","remove","convertedView","_rootRef$current","convertTsx","expanded","brick","context","_rootRef$current2","console","customElements","get","properties","errorTitle","dataset","errorBoundary","style","color","children","textContent","httpErrorToString","className","styles","editor","Suspense","fallback","value","language","uri","automaticLayout","theme","extraMarkers","preview","_TsxPlayground2","c","_initClass","_applyDecs","shadowOptions","attribute","Object","defineProperty","exports","_exportNames","react","assertNode","createTypeAnnotationBasedOnTypeof","createUnionTypeAnnotation","createFlowUnionType","createTSUnionType","cloneNode","clone","cloneDeep","cloneDeepWithoutLoc","cloneWithoutLoc","addComment","addComments","inheritInnerComments","inheritLeadingComments","inheritsComments","inheritTrailingComments","removeComments","ensureBlock","toBindingIdentifierName","toBlock","toComputedKey","toExpression","toIdentifier","toKeyAlias","toStatement","valueToNode","appendToMemberExpression","inherits","prependToMemberExpression","removeProperties","removePropertiesDeep","removeTypeDuplicates","getAssignmentIdentifiers","getBindingIdentifiers","getOuterBindingIdentifiers","getFunctionName","traverse","traverseFast","shallowEqual","is","isBinding","isBlockScoped","isImmutable","isLet","isNode","isNodesEquivalent","isPlaceholderType","isReferenced","isScope","isSpecifierDefault","isType","isValidES3Identifier","isValidIdentifier","isVar","matchesPattern","validate","buildMatchMemberExpression","__internal__deprecationWarning","enumerable","_deprecationWarning","_addComment","_addComments","_appendToMemberExpression","_assertNode","_buildMatchMemberExpression","_clone","_cloneDeep","_cloneDeepWithoutLoc","_cloneNode","_cloneWithoutLoc","_createFlowUnionType","_createTSUnionType","_createTypeAnnotationBasedOnTypeof","_ensureBlock","_getAssignmentIdentifiers","_getBindingIdentifiers","_getFunctionName","_getOuterBindingIdentifiers","_inheritInnerComments","_inheritLeadingComments","_inheritTrailingComments","_inherits","_inheritsComments","_is","_isBinding","_isBlockScoped","_isImmutable","_isLet","_isNode","_isNodesEquivalent","_isPlaceholderType","_isReferenced","_isScope","_isSpecifierDefault","_isType","_isValidES3Identifier","_isValidIdentifier","_isVar","_matchesPattern","_prependToMemberExpression","_removeComments","_removeProperties","_removePropertiesDeep","_removeTypeDuplicates","_shallowEqual","_toBindingIdentifierName","_toBlock","_toComputedKey","_toExpression","_toIdentifier","_toKeyAlias","_toStatement","_traverse","_traverseFast","_validate","_valueToNode","_isReactComponent","_isCompatTag","_buildChildren","_index","keys","forEach","key","prototype","hasOwnProperty","call","_productions","_index2","_index3","_index4","_index5","_index6","_toSequenceExpression","isReactComponent","isCompatTag","buildChildren","toSequenceExpression","process","env","BABEL_TYPES_8_BREAKING","warn"],"sourceRoot":""}