@next-bricks/visual-builder 1.37.1 → 1.37.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bricks.json +19 -19
- package/dist/chunks/{2464.676686cc.js → 2464.03a8d1ba.js} +2 -2
- package/dist/chunks/2464.03a8d1ba.js.map +1 -0
- package/dist/chunks/6117.1d7ec00c.js +1 -0
- package/dist/chunks/{main.9f436558.js → main.ad8f5284.js} +2 -2
- package/dist/chunks/{main.9f436558.js.map → main.ad8f5284.js.map} +1 -1
- package/dist/chunks/{raw-data-preview.79a5f278.js → raw-data-preview.7b191fed.js} +3 -3
- package/dist/chunks/raw-data-preview.7b191fed.js.map +1 -0
- package/dist/examples.json +3 -3
- package/dist/{index.f976a0ef.js → index.78899cae.js} +2 -2
- package/dist/{index.f976a0ef.js.map → index.78899cae.js.map} +1 -1
- package/dist/manifest.json +110 -110
- package/dist/types.json +903 -903
- package/package.json +2 -2
- package/dist/chunks/2464.676686cc.js.map +0 -1
- package/dist/chunks/6117.7ee90157.js +0 -1
- package/dist/chunks/raw-data-preview.79a5f278.js.map +0 -1
- /package/dist/chunks/{raw-data-preview.79a5f278.js.LICENSE.txt → raw-data-preview.7b191fed.js.LICENSE.txt} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_next_bricks_visual_builder=globalThis.webpackChunk_next_bricks_visual_builder||[]).push([[6117],{3084:n=>{n.exports='你的职责是根据用户提供的模型属性定义,根据示例按标准 JSON 格式输出显示方案。\n\n一项数据,根据其类型和业务性质,在不同的场景和需求下展示,通常会使用不同的视觉重量来呈现,通常方式为设置图标或文字颜色等。\n\n对于布尔类型的数据,可以使用固定的图标对或文本对来分别显示 true 和 false 值。\n\n例如主机模型的是否可用属性,类型是布尔,按视觉重量从低到高,有以下几种显示方案:\n\n1. 使用文本形式显示,文本内容分别为 “Y” 和 “N”,使用默认的颜色显示;\n2. 使用图标形式显示,使用相应的颜色显示;\n3. 使用图标+文本形式显示,文本内容分别为 “Yes” 和 “No”,使用相应的颜色显示;\n\n期望返回结果:\n\n```json\n[\n {\n "visualWeight": -1,\n "display": "text",\n "type": "boolean",\n "true": {\n "text": "Y",\n "style": {\n "color": "var(--color-default)"\n }\n },\n "false": {\n "text": "N",\n "style": {\n "color": "var(--color-default)"\n }\n }\n },\n {\n "visualWeight": 0,\n "display": "icon",\n "type": "boolean",\n "true": {\n "icon": "check",\n "style": {\n "color": "var(--color-success)"\n }\n },\n "false": {\n "icon": "xmark",\n "style": {\n "color": "var(--color-error)"\n }\n }\n },\n {\n "visualWeight": 1,\n "display": "icon+text",\n "type": "boolean",\n "true": {\n "icon": "check",\n "text": "Yes",\n "style": {\n "color": "var(--color-success)"\n }\n },\n "false": {\n "icon": "xmark",\n "text": "No",\n "style": {\n "color": "var(--color-error)"\n }\n }\n }\n]\n```\n\n将这些显示方案严格地按预设的 TypeScript 接口定义为格式,输出标准的 JSON 格式内容。\n\n接口定义如下:\n\n```typescript\ninterface VisualConfig {\n /** 视觉重量,整型,默认为 0,取值范围 [-1, 2] */\n visualWeight: -1 | 0 | 1 | 2;\n\n /** 原始数据类型 */\n type: "boolean";\n\n /** 显示形式,默认为 text */\n display: "text" | "icon" | "icon+text";\n\n /** 值为 true 时的显示配置 */\n true: ValueConfig;\n\n /** 值为 false 时的显示配置 */\n false: ValueConfig;\n}\n\ntype Result = VisualConfig[];\n\ninterface ValueConfig {\n /** 显示的图标 */\n icon?: "check" | "xmark";\n\n /** 显示的文本 */\n text?: string;\n\n /** 样式设置 */\n style?: Style;\n}\n\ninterface Style {\n /**\n * 尺寸\n *\n * @default "medium"\n */\n size?: "small" | "medium" | "large" | "x-large";\n\n /**\n * 字重\n *\n * @default "normal"\n */\n fontWeight?: "normal" | "bold";\n\n /** 内容颜色使用预设的 CSS 变量 */\n color?:\n "var(--text-color-default)" |\n "var(--color-success)" |\n "var(--color-error)";\n}\n```\n\n注意不要在输出的方案内容中包含任何上述接口中未定义的字段。\n'},7710:n=>{n.exports='你的职责是根据用户提供的模型属性定义,根据示例按标准 JSON 格式输出显示方案。\n\n对于日期和时间类型的数据:\n\n- 不需要关注具体发生时刻的数据,使用相对时间格式,例如日常操作记录的时间;\n- 明确需要使用精确时间的数据,使用精确时间,例如系统日志中的时间;\n- 对于耗时类的数据,使用耗时格式,例如工具执行耗时;\n\n例如主机模型的上架时间属性,类型是日期时间,按视觉重量从低到高,有以下几种显示方案:\n\n1. 使用日期时间格式化,使用相对时间;\n2. 使用日期时间格式化,使用精确时间;\n3. 使用日期时间格式化,使用完整时间;\n\n期望返回结果:\n\n```json\n[\n {\n "visualWeight": -1,\n "display": "text",\n "type": "date-time",\n "formatter": {\n "type": "date-time",\n "format": "relative"\n }\n },\n {\n "visualWeight": 0,\n "display": "text",\n "type": "date-time",\n "formatter": {\n "type": "date-time",\n "format": "accurate"\n }\n },\n {\n "visualWeight": 1,\n "display": "text",\n "type": "date-time",\n "formatter": {\n "type": "date-time",\n "format": "full"\n }\n }\n]\n```\n\n又例如主机模型的交付日期属性,类型是日期,按视觉重量从低到高,有以下几种显示方案:\n\n1. 使用日期时间格式化,使用相对时间;\n2. 使用日期时间格式化,使用精确时间;\n3. 使用日期时间格式化,使用完整时间;\n\n期望返回结果:\n\n```json\n[\n {\n "visualWeight": -1,\n "display": "text",\n "type": "date",\n "formatter": {\n "type": "date",\n "format": "relative"\n }\n },\n {\n "visualWeight": 0,\n "display": "text",\n "type": "date",\n "formatter": {\n "type": "date",\n "format": "accurate"\n }\n },\n {\n "visualWeight": 1,\n "display": "text",\n "type": "date",\n "formatter": {\n "type": "date",\n "format": "full"\n }\n }\n]\n```\n\n将这些显示方案严格地按预设的 TypeScript 接口定义为格式,输出标准的 JSON 格式内容。\n\n接口定义如下:\n\n```typescript\ninterface VisualConfig {\n /** 视觉重量,整型,默认为 0,取值范围 [-1, 2] */\n visualWeight: -1 | 0 | 1 | 2;\n\n /** 原始数据类型 */\n type: "date" | "date-time";\n\n /** 显示形式,默认为 text */\n display: "text";\n\n /** 样式设置 */\n style?: Style;\n\n /** 格式化设置 */\n formatter?: DateTimeFormatter;\n}\n\ntype Result = VisualConfig[];\n\ninterface Style {\n /**\n * 尺寸\n *\n * @default "medium"\n */\n size?: "small" | "medium" | "large" | "x-large";\n\n /**\n * 字重\n *\n * @default "normal"\n */\n fontWeight?: "normal" | "bold";\n\n /** 内容颜色使用预设的 CSS 变量 */\n color?:\n "var(--text-color-default)" |\n "var(--text-color-secondary)" |\n "var(--text-color-disabled)" |\n "var(--color-brand)";\n}\n\ninterface DateTimeFormatter {\n type: "date" | "date-time";\n\n format: "full" | "accurate" | "relative";\n}\n\ninterface CostTimeFormatter {\n type: "cost-time";\n}\n```\n\n注意不要在输出的方案内容中包含任何上述接口中未定义的字段。\n'},5799:n=>{n.exports='你的职责是根据用户提供的模型属性定义,根据示例按标准 JSON 格式输出显示方案。\n\n一项数据,根据其类型和业务性质,在不同的场景和需求下展示,通常会使用不同的视觉重量来呈现,通常方式为设置文字的字号、字重和颜色,有时还会设置边框和背景色(表现形式为标签)。另外还需要进行合理的格式化。\n\n**使用标签形式时,只设置颜色、边框和背景,不设置字号和字重**。标签形式的视觉重量通常比普通文本的高,标签有几种形式的变种,视觉重量由低到高:默认、边框、背景填充。\n\n对于枚举类型的数据,通常表示状态或类型等,如果用于表示状态,通常使用标签形式。\n\n例如主机模型的 agent 状态属性,类型是枚举:未安装; 异常; 正常。有以下几种显示方案:\n\n1. 使用标签形式,灰色背景;\n2. 使用标签形式,根据状态值从色板中挑选合适的颜色;\n3. 使用标签形式,使用边框,根据状态值从色板中挑选合适的颜色;\n4. 使用标签形式,使用背景填充,根据状态值从色板中挑选合适的颜色。\n\n期望返回结果:\n\n```json\n[\n {\n "visualWeight": -1,\n "display": "tag",\n "type": "enum",\n "style": {\n "variant": "default",\n "background": "gray"\n }\n },\n {\n "visualWeight": 0,\n "display": "tag",\n "type": "enum",\n "style": {\n "variant": "default",\n "palette": {\n "未安装": "gray",\n "异常": "red",\n "正常": "green"\n }\n }\n },\n {\n "visualWeight": 1,\n "display": "tag",\n "type": "enum",\n "style": {\n "variant": "outline",\n "palette": {\n "未安装": "gray",\n "异常": "red",\n "正常": "green"\n }\n }\n },\n {\n "visualWeight": 2,\n "display": "tag",\n "type": "enum",\n "style": {\n "variant": "background",\n "palette": {\n "未安装": "gray",\n "异常": "red",\n "正常": "green"\n }\n }\n }\n]\n```\n\n又例如主机模型等环境类型属性,类型是枚举:开发;测试;生产。有以下几种显示方案:\n\n1. 使用文本形式,中等字号,次级文本颜色显示;\n2. 使用文本形式,中等字号,默认文本颜色显示;\n3. 使用标签形式,根据值从色板中挑选合适的颜色;\n4. 使用标签形式,使用边框,根据状态值从色板中挑选合适的颜色;\n\n期望返回结果:\n\n```json\n[\n {\n "visualWeight": -1,\n "display": "text",\n "type": "string",\n "style": {\n "size": "medium",\n "color": "var(--text-color-secondary)"\n }\n },\n {\n "visualWeight": 0,\n "display": "text",\n "type": "string",\n "style": {\n "size": "medium",\n "color": "var(--text-color-default)"\n }\n },\n {\n "visualWeight": 1,\n "display": "tag",\n "type": "enum",\n "style": {\n "variant": "default",\n "palette": {\n "开发": "gray",\n "测试": "orange",\n "生产": "blue"\n }\n }\n },\n {\n "visualWeight": 2,\n "display": "tag",\n "type": "enum",\n "style": {\n "variant": "outline",\n "palette": {\n "开发": "gray",\n "测试": "orange",\n "生产": "blue"\n }\n }\n }\n]\n```\n\n将这些显示方案严格地按预设的 TypeScript 接口定义为格式,输出标准的 JSON 格式内容。\n\n接口定义如下:\n\n```typescript\ninterface VisualConfig {\n /** 视觉重量,整型,默认为 0,取值范围 [-1, 2] */\n visualWeight: -1 | 0 | 1 | 2;\n\n /** 原始数据类型 */\n type: "enum";\n\n /** 显示形式,默认为 text */\n display: "text" | "tag";\n\n /** 样式设置 */\n style?: Style;\n}\n\ntype Result = VisualConfig[];\n\ninterface Style {\n /**\n * 尺寸\n *\n * @default "medium"\n */\n size?: "small" | "medium" | "large" | "x-large";\n\n /**\n * 字重\n *\n * @default "normal"\n */\n fontWeight?: "normal" | "bold";\n\n /** 内容颜色使用预设的 CSS 变量 */\n color?:\n "var(--text-color-default)" |\n "var(--text-color-secondary)" |\n "var(--text-color-disabled)" |\n "var(--color-brand)";\n\n /** 标签变种形式:默认、边框、背景色 */\n variant?: "default" | "outline" | "background";\n\n /** 背景颜色使用预设的 CSS 变量 */\n background?: Background;\n\n /** 背景颜色表 */\n palette?: Record<string, Background>;\n}\n\ntype Background = "blue" | "cyan" | "geekblue" | "grayblue" | "gray" | "green" | "orange" | "purple" | "red" | "yellow" | "teal";\n```\n\n注意不要在输出的方案内容中包含任何上述接口中未定义的字段。\n'},76:n=>{n.exports='你的职责是根据用户提供的模型属性定义,根据示例按标准 JSON 格式输出显示方案。\n\n一项数据,根据其类型和业务性质,在不同的场景和需求下展示,通常会使用不同的视觉重量来呈现,通常方式为设置图标或文字颜色等。\n\n对于 JSON 类型的数据,如果是图标相关的属性,使用图标显示;否则显示为链接(点击后查看详情),或显示为序列化后的内容。\n\n例如菜单模型的菜单图标属性,类型是 JSON,按视觉重量从低到高,有以下几种显示方案:\n\n1. 使用图标形式显示,默认中等尺寸;\n2. 使用图标形式显示,大尺寸;\n\n期望返回结果:\n\n```json\n[\n {\n "visualWeight": 0,\n "display": "icon",\n "type": "json",\n "style": {\n "size": "medium"\n }\n },\n {\n "visualWeight": 1,\n "display": "icon",\n "type": "json",\n "style": {\n "size": "large"\n }\n }\n]\n```\n\n又例如菜单模型的菜单设置属性,类型是 JSON,按视觉重量从低到高,有以下几种显示方案:\n\n1. 使用链接形式显示,点击后查看详情;\n2. 使用文本形式显示序列化后的内容;\n\n期望返回结果:\n\n```json\n[\n {\n "visualWeight": 0,\n "display": "link",\n "type": "json"\n },\n {\n "visualWeight": 0,\n "display": "text",\n "type": "json"\n }\n]\n```\n\n将这些显示方案严格地按预设的 TypeScript 接口定义为格式,输出标准的 JSON 格式内容。\n\n接口定义如下:\n\n```typescript\ninterface VisualConfig {\n /** 视觉重量,整型,默认为 0,取值范围 [-1, 2] */\n visualWeight: -1 | 0 | 1 | 2;\n\n /** 原始数据类型 */\n type: "json";\n\n /** 显示形式,默认为 text */\n display: "text" | "icon" | "link";\n\n /** 样式设置 */\n style?: Style;\n}\n\ntype Result = VisualConfig[];\n\ninterface Style {\n /**\n * 尺寸\n *\n * @default "medium"\n */\n size?: "medium" | "large";\n}\n```\n\n注意不要在输出的方案内容中包含任何上述接口中未定义的字段。\n'},4671:n=>{n.exports='你的职责是根据用户提供的模型属性定义,根据示例按标准 JSON 格式输出显示方案。\n\n一项数据,根据其类型和业务性质,在不同的场景和需求下展示,通常会使用不同的视觉重量来呈现,通常方式为设置文字的字号、字重和颜色。\n\n对于数字类型的属性(包括整型和浮点型),可以表示为数量、货币金额、日期时间等。\n\n其中对于表示日期和时间的数据:\n\n- 不需要关注具体发生时刻的数据,使用相对时间格式,例如日常操作记录的时间;\n- 明确需要使用精确时间的数据,使用精确时间,例如系统日志中的时间;\n- 对于耗时类的数据,使用耗时格式,例如工具执行耗时;\n\n例如主机模型的 cpu 核心数属性,类型是整型,按视觉重量从低到高,有以下几种显示方案:\n\n1. 使用中等字号,次级文本颜色显示;\n2. 使用中等字号,默认颜色文本显示;\n3. 使用中等字号,字重加粗,默认颜色文本显示;\n4. 使用大号字号,字重加粗,默认颜色文本显示。\n\n期望返回结果:\n\n```json\n[\n {\n "visualWeight": -1,\n "display": "text",\n "type": "integer",\n "style": {\n "size": "medium",\n "color": "var(--text-color-secondary)"\n }\n },\n {\n "visualWeight": 0,\n "display": "text",\n "type": "integer",\n "style": {\n "size": "medium",\n "color": "var(--text-color-default)"\n }\n },\n {\n "visualWeight": 1,\n "display": "text",\n "type": "integer",\n "style": {\n "size": "medium",\n "fontWeight": "bold",\n "color": "var(--text-color-default)"\n }\n },\n {\n "visualWeight": 2,\n "display": "text",\n "type": "integer",\n "style": {\n "size": "large",\n "fontWeight": "bold",\n "color": "var(--text-color-default)"\n }\n }\n]\n```\n\n例如主机模型的购买价格属性,类型是浮点型,单位人名币元,按视觉重量从低到高,有以下几种显示方案:\n\n1. 使用数字格式化为货币,货币单位 CNY,不保留小数,启用千分位;\n2. 使用数字格式化为货币,货币单位 CNY,保留两位小数,启用千分位;\n\n期望返回结果:\n\n```json\n[\n {\n "visualWeight": 0,\n "display": "text",\n "type": "float",\n "formatter": {\n "type": "number",\n "format": "currency",\n "currency": "CNY",\n "decimals": 0,\n "thousandsSeparator": true\n }\n },\n {\n "visualWeight": 1,\n "display": "text",\n "type": "float",\n "formatter": {\n "type": "number",\n "format": "currency",\n "currency": "CNY",\n "decimals": 2,\n "thousandsSeparator": true\n }\n }\n]\n```\n\n例如主机模型的上架时间属性,类型是整型,按视觉重量从低到高,有以下几种显示方案:\n\n1. 使用日期时间格式化,使用相对时间;\n1. 使用日期时间格式化,使用精确时间;\n1. 使用日期时间格式化,使用完整时间;\n\n期望返回结果:\n\n```json\n[\n {\n "visualWeight": -1,\n "display": "text",\n "type": "integer",\n "formatter": {\n "type": "date-time",\n "format": "relative"\n }\n },\n {\n "visualWeight": 0,\n "display": "text",\n "type": "integer",\n "formatter": {\n "type": "date-time",\n "format": "accurate"\n }\n },\n {\n "visualWeight": 1,\n "display": "text",\n "type": "integer",\n "formatter": {\n "type": "date-time",\n "format": "full"\n }\n }\n]\n```\n\n又例如主机模型的 CPU 使用率,类型是整型,取值区间是 0 - 100。有以下几种显示方案:\n\n1. 使用中等字号,使用次级文本颜色,使用数字百分比格式化;\n2. 使用中等字号,根据区间取值挑选合适的颜色,使用数字百分比格式化;\n3. 使用大号字号,根据区间取值挑选合适的颜色,使用数字百分比格式化。\n\n期望返回结果:\n\n```json\n[\n {\n "visualWeight": -1,\n "display": "text",\n "type": "integer",\n "style": {\n "size": "medium",\n "color": "var(--text-color-secondary)"\n },\n "formatter": {\n "type": "number",\n "format": "percent"\n }\n },\n {\n "visualWeight": 0,\n "display": "text",\n "type": "integer",\n "style": {\n "size": "medium"\n },\n "ranges": [\n {\n "end": 60,\n "style": {\n "color": "green"\n }\n },\n {\n "start": 61,\n "end": 95,\n "style": {\n "color": "orange"\n }\n },\n {\n "start": 96,\n "style": {\n "color": "red"\n }\n }\n ],\n "formatter": {\n "type": "number",\n "format": "percent"\n }\n },\n {\n "visualWeight": 1,\n "display": "text",\n "type": "integer",\n "style": {\n "size": "large"\n },\n "ranges": [\n {\n "end": 60,\n "style": {\n "color": "green"\n }\n },\n {\n "start": 61,\n "end": 95,\n "style": {\n "color": "orange"\n }\n },\n {\n "start": 96,\n "style": {\n "color": "red"\n }\n }\n ],\n "formatter": {\n "type": "number",\n "format": "percent"\n }\n }\n]\n```\n\n将这些显示方案严格地按预设的 TypeScript 接口定义为格式,输出标准的 JSON 格式内容。\n\n接口定义如下:\n\n```typescript\ninterface VisualConfig {\n /** 视觉重量,整型,默认为 0,取值范围 [-1, 2] */\n visualWeight: -1 | 0 | 1 | 2;\n\n /** 原始数据类型 */\n type: "integer" | "float";\n\n /** 显示形式,默认为 text */\n display: "text";\n\n /** 样式设置 */\n style?: Style;\n\n /** 根据区间设置不同的样式 */\n ranges?: Range[];\n\n /** 格式化设置 */\n formatter?: Formatter;\n}\n\ntype Result = VisualConfig[];\n\ninterface Style {\n /**\n * 尺寸\n *\n * @default "medium"\n */\n size?: "small" | "medium" | "large" | "x-large";\n\n /**\n * 字重\n *\n * @default "normal"\n */\n fontWeight?: "normal" | "bold";\n\n /** 内容颜色使用预设的 CSS 变量 */\n color?:\n "var(--text-color-default)" |\n "var(--text-color-secondary)" |\n "var(--text-color-disabled)" |\n "var(--color-brand)";\n}\n\ninterface Range {\n start?: number;\n end?: number;\n style?: Style;\n}\n\ntype Formatter = DateTimeFormatter | CostTimeFormatter | NumberFormatter;\n\ninterface DateTimeFormatter {\n type: "date-time";\n\n format: "full" | "accurate" | "relative";\n}\n\ninterface CostTimeFormatter {\n type: "cost-time";\n}\n\ninterface NumberFormatter {\n type: "number";\n\n format: "decimal" | "currency" | "percent" | "unit";\n\n /**\n * 货币名,例如 CNY / USD 等\n */\n currency?: string;\n\n /** 数据原始单位,例如 KiB */\n originalUnit?: string;\n\n /** 保留的小数位数 */\n decimals?: number;\n\n thousandsSeparator?: boolean;\n}\n```\n\n注意不要在输出的方案内容中包含任何上述接口中未定义的字段。\n'},8397:n=>{n.exports='你的职责是根据用户提供的模型属性定义,根据示例按标准 JSON 格式输出显示方案。\n\n一项数据,根据其类型和业务性质,在不同的场景和需求下展示,通常会使用不同的视觉重量来呈现,通常方式为设置文字的字号、字重和颜色。\n\n对于文本类型的数据,如果该属性属于该模型的重要信息,例如名称、ID等,可以添加字重加粗和大号字号的方案,其他不重要的属性,只需要较弱和普通两种视觉重量方案。\n\n例如主机模型的 IP 属性,类型是字符串,按视觉重量从低到高,有以下几种显示方案:\n\n1. 使用中等字号,次级文本颜色显示;\n2. 使用中等字号,默认颜色文本显示;\n3. 使用中等字号,字重加粗,默认颜色文本显示;\n4. 使用大号字号,字重加粗,默认颜色文本显示。\n\n期望返回结果:\n\n```json\n[\n {\n "visualWeight": -1,\n "display": "text",\n "type": "string",\n "style": {\n "size": "medium",\n "color": "var(--text-color-secondary)"\n }\n },\n {\n "visualWeight": 0,\n "display": "text",\n "type": "string",\n "style": {\n "size": "medium",\n "color": "var(--text-color-default)"\n }\n },\n {\n "visualWeight": 1,\n "display": "text",\n "type": "string",\n "style": {\n "size": "medium",\n "fontWeight": "bold",\n "color": "var(--text-color-default)"\n }\n },\n {\n "visualWeight": 2,\n "display": "text",\n "type": "string",\n "style": {\n "size": "large",\n "fontWeight": "bold",\n "color": "var(--text-color-default)"\n }\n }\n]\n```\n\n又例如主机模型的备注属性,类型是字符串,按视觉重量从低到高,有以下几种显示方案:\n\n1. 使用中等字号,次级文本颜色显示;\n2. 使用中等字号,默认颜色文本显示;\n\n期望返回结果:\n\n```json\n[\n {\n "visualWeight": -1,\n "display": "text",\n "type": "string",\n "style": {\n "size": "medium",\n "color": "var(--text-color-secondary)"\n }\n },\n {\n "visualWeight": 0,\n "display": "text",\n "type": "string",\n "style": {\n "size": "medium",\n "color": "var(--text-color-default)"\n }\n }\n]\n```\n\n将这些显示方案严格地按预设的 TypeScript 接口定义为格式,输出标准的 JSON 格式内容。\n\n接口定义如下:\n\n```typescript\ninterface VisualConfig {\n /** 视觉重量,整型,默认为 0,取值范围 [-1, 2] */\n visualWeight: -1 | 0 | 1 | 2;\n\n /** 原始数据类型 */\n type: "string";\n\n /** 显示形式,默认为 text */\n display: "text";\n\n /** 样式设置 */\n style?: Style;\n}\n\ntype Result = VisualConfig[];\n\ninterface Style {\n /**\n * 尺寸\n *\n * @default "medium"\n */\n size?: "small" | "medium" | "large" | "x-large";\n\n /**\n * 字重\n *\n * @default "normal"\n */\n fontWeight?: "normal" | "bold";\n\n /** 内容颜色使用预设的 CSS 变量 */\n color?:\n "var(--text-color-default)" |\n "var(--text-color-secondary)" |\n "var(--text-color-disabled)" |\n "var(--color-brand)";\n\n /** 标签变种形式:默认、边框、背景色 */\n variant?: "default" | "outline" | "background";\n\n /** 背景颜色使用预设的 CSS 变量 */\n background?: Background;\n\n /** 背景颜色表 */\n palette?: Record<string, Background>;\n}\n\ntype Background = "blue" | "cyan" | "geekblue" | "grayblue" | "gray" | "green" | "orange" | "purple" | "red" | "yellow" | "teal";\n```\n\n注意不要在输出的方案内容中包含任何上述接口中未定义的字段。\n'},3404:n=>{n.exports='你的职责是根据用户提供的模型属性定义,根据示例按标准 JSON 格式输出显示方案。\n\n对于结构体列表类型的数据,仅显示其数量,或列出其前两项数据的主要属性、并附带数量。\n\n例如主机模型的防火墙规则列表,类型是结构体列表。该结构体定义的字段有:名称(ID 是 name,类型是字符串)、说明(ID 是 desc,类型是字符串)、范围(ID 是 range,类型是字符串)等。有以下几种显示方案:\n\n1. 使用文本形式,仅显示数量;\n2. 使用链接形式,仅显示数量;\n3. 使用标签形式,显示前两项规则名称(name)及总数;\n4. 使用标签形式,使用边框,显示前两项规则名称(name)及总数;\n\n期望返回结果:\n\n```json\n[\n {\n "visualWeight": -1,\n "display": "text",\n "type": "struct-list",\n "countOnly": true\n },\n {\n "visualWeight": 0,\n "display": "link",\n "type": "struct-list",\n "countOnly": true\n },\n {\n "visualWeight": 1,\n "display": "tag",\n "type": "struct-list",\n "field": "name",\n "maxItems": 2,\n "style": {\n "variant": "default"\n }\n },\n {\n "visualWeight": 2,\n "display": "tag",\n "type": "struct-list",\n "field": "name",\n "maxItems": 2,\n "style": {\n "variant": "outline"\n }\n }\n]\n```\n\n将这些显示方案严格地按预设的 TypeScript 接口定义为格式,输出标准的 JSON 格式内容。\n\n接口定义如下:\n\n```typescript\ninterface VisualConfig {\n /** 视觉重量,整型,默认为 0,取值范围 [-1, 2] */\n visualWeight: -1 | 0 | 1 | 2;\n\n /** 原始数据类型 */\n type: "struct-list";\n\n /** 显示形式,默认为 text */\n display: "text" | "tag" | "link";\n\n /** 样式设置 */\n style?: Style;\n\n /** 最多显示的列表项数量,当结构体列表数据降级显示时使用 */\n maxItems?: number;\n\n /** 尽显示列表类数据的数量 */\n countOnly?: number;\n\n /** 当结构体数据降级显示时,仅显示该字段值 */\n field?: string;\n}\n\ntype Result = VisualConfig[];\n\ninterface Style {\n /** 标签变种形式:默认、边框、背景色 */\n variant?: "default" | "outline" | "background";\n}\n```\n\n注意不要在输出的方案内容中包含任何上述接口中未定义的字段。\n'},3287:n=>{n.exports='你的职责是根据用户提供的模型属性定义,根据示例按标准 JSON 格式输出显示方案。\n\n一项数据,根据其类型和业务性质,在不同的场景和需求下展示,通常会使用不同的视觉重量来呈现,通常方式为设置文字的字号、字重和颜色。\n\n对于结构体类型的数据,始终降级显示,仅显示其主要属性(通常为名称)。\n\n例如主机模型的 CPU 信息,类型是结构体。该结构体定义的字段有:型号(ID 是 brand,类型是字符串)、架构(ID 是 architecture,类型是字符串)、频率(ID 是 hz,类型是整型)等。有以下几种显示方案:\n\n1. 使用文本形式,显示 CPU 的型号(brand);\n2. 使用链接形式,显示 CPU 的型号(brand);\n3. 使用标签形式,显示 CPU 的型号(brand);\n\n期望返回结果:\n\n```json\n[\n {\n "visualWeight": 0,\n "display": "text",\n "type": "struct",\n "field": "brand"\n },\n {\n "visualWeight": 1,\n "display": "link",\n "type": "struct",\n "field": "brand"\n },\n {\n "visualWeight": 2,\n "display": "tag",\n "type": "struct",\n "field": "brand"\n }\n]\n```\n\n将这些显示方案严格地按预设的 TypeScript 接口定义为格式,输出标准的 JSON 格式内容。\n\n接口定义如下:\n\n```typescript\ninterface VisualConfig {\n /** 视觉重量,整型,默认为 0,取值范围 [-1, 2] */\n visualWeight: -1 | 0 | 1 | 2;\n\n /** 原始数据类型 */\n type: "struct";\n\n /** 显示形式,默认为 text */\n display: "text" | "link" | "tag";\n\n /** 样式设置 */\n style?: Style;\n\n /** 当结构体数据降级显示时,仅显示该字段值 */\n field?: string;\n}\n\ntype Result = VisualConfig[];\n\ninterface Style {\n /**\n * 尺寸\n *\n * @default "medium"\n */\n size?: "small" | "medium" | "large" | "x-large";\n\n /**\n * 字重\n *\n * @default "normal"\n */\n fontWeight?: "normal" | "bold";\n\n /** 内容颜色使用预设的 CSS 变量 */\n color?:\n "var(--text-color-default)" |\n "var(--text-color-secondary)" |\n "var(--text-color-disabled)" |\n "var(--color-brand)";\n\n /** 标签变种形式:默认、边框、背景色 */\n variant?: "default" | "outline" | "background";\n\n /** 背景颜色使用预设的 CSS 变量 */\n background?: Background;\n\n /** 背景颜色表 */\n palette?: Record<string, Background>;\n}\n\ntype Background = "blue" | "cyan" | "geekblue" | "grayblue" | "gray" | "green" | "orange" | "purple" | "red" | "yellow" | "teal";\n```\n\n注意不要在输出的方案内容中包含任何上述接口中未定义的字段。\n'}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/raw-data-preview.79a5f278.js","mappings":"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","sources":["webpack:///./src/raw-data-preview/index.tsx","webpack:///./src/shared/compat_internals.ts","webpack:///./src/raw-data-preview/preview.shadow.css","webpack:///./src/raw-data-preview/styles.shadow.css","webpack:///../../node_modules/css-loader/dist/runtime/api.js","webpack:///../../node_modules/css-loader/dist/runtime/noSourceMaps.js","webpack:///../../node_modules/classnames/index.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/setFunctionName.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/applyDecs2311.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/assertClassBrand.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkInRHS.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet2.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet2.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateGetter.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/typeof.js"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport type { BrickConf, ContextConf, MicroApp } from \"@next-core/types\";\nimport classNames from \"classnames\";\nimport { getBasePath } from \"@next-core/runtime\";\nimport type { PreviewWindow } from \"@next-core/preview/types\";\nimport { JSON_SCHEMA, safeDump } from \"js-yaml\";\nimport { __compat_internals } from \"../shared/compat_internals\";\nimport type { VisualConfig } from \"./raw-data-interfaces\";\nimport { convertToStoryboard } from \"./convert\";\nimport styleText from \"./styles.shadow.css\";\nimport previewStyleText from \"./preview.shadow.css\";\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface RawPreviewProps {\n previewUrl?: string;\n generations?: AttributeGeneration[];\n mocks?: Record<string, unknown>[];\n busy?: boolean;\n category?: PreviewCategory;\n theme?: string;\n uiVersion?: string;\n app?: MicroApp;\n}\n\nexport interface AttributeGeneration {\n generationId?: string;\n objectId: string;\n objectName: string;\n propertyId: string;\n propertyName: string;\n propertyType?: string;\n propertyValues?: unknown[];\n propertyInstanceId?: string;\n comment?: string;\n approved?: boolean;\n candidates: VisualConfig[] | null;\n mockData: Record<string, unknown>[];\n}\n\nexport interface CommentDetail {\n comment: string;\n propertyInstanceId?: string;\n}\n\nexport interface ApproveDetail {\n approved: boolean;\n propertyInstanceId?: string;\n}\n\ninterface BasePreviewMessage {\n channel: \"raw-data-preview\";\n}\n\ninterface CommentMessage extends BasePreviewMessage {\n type: \"comment\";\n payload: CommentDetail;\n}\n\ninterface ApproveMessage extends BasePreviewMessage {\n type: \"approve\";\n payload: ApproveDetail;\n}\n\ninterface ViewAttrPromptMessage extends BasePreviewMessage {\n type: \"viewAttrPrompt\";\n payload: AttributeGeneration;\n}\n\ninterface UpdatePropertyToggleStateMessage extends BasePreviewMessage {\n type: \"updatePropertyToggleState\";\n payload: string[];\n}\n\ninterface UpdatePropertyExpandStateMessage extends BasePreviewMessage {\n type: \"updatePropertyExpandState\";\n payload: string[];\n}\n\ninterface UpdatePropertyApproveStateMessage extends BasePreviewMessage {\n type: \"updatePropertyApproveState\";\n payload: string[];\n}\n\ntype PreviewMessage =\n | CommentMessage\n | ApproveMessage\n | ViewAttrPromptMessage\n | UpdatePropertyToggleStateMessage\n | UpdatePropertyExpandStateMessage\n | UpdatePropertyApproveStateMessage;\n\nexport type PreviewCategory =\n | \"detail-item\"\n | \"form-item\"\n | \"table-column\"\n | \"card-item\"\n | \"metric-item\"\n | \"value\";\n\n/**\n * 构件 `visual-builder.raw-data-preview`\n *\n * @internal\n */\nexport\n@defineElement(\"visual-builder.raw-data-preview\", {\n styleTexts: [styleText],\n})\nclass RawDataPreview extends ReactNextElement {\n @property()\n accessor previewUrl: string | undefined;\n\n @property({ attribute: false })\n accessor generations: AttributeGeneration[] | undefined;\n\n @property({ attribute: false })\n accessor mocks: Record<string, unknown>[] | undefined;\n\n @property({ type: Boolean })\n accessor busy: boolean | undefined;\n\n /**\n * @default \"value\"\n */\n @property()\n accessor category: PreviewCategory | undefined;\n\n @property()\n accessor theme: string | undefined;\n\n @property()\n accessor uiVersion: string | undefined;\n\n @property()\n accessor app: MicroApp | undefined;\n\n @event({ type: \"comment\" })\n accessor #commentEvent: EventEmitter<CommentDetail>;\n\n #handleComment = (detail: CommentDetail) => {\n this.#commentEvent.emit(detail);\n };\n\n @event({ type: \"approve\" })\n accessor #approveEvent: EventEmitter<ApproveDetail>;\n\n #handleApprove = (detail: ApproveDetail) => {\n this.#approveEvent.emit(detail);\n };\n\n @event({ type: \"view.attr.prompt\" })\n accessor #viewAttrPromptEvent: EventEmitter<AttributeGeneration>;\n\n #handleViewAttrPrompt = (detail: AttributeGeneration) => {\n this.#viewAttrPromptEvent.emit(detail);\n };\n\n render() {\n return (\n <RawDataPreviewComponent\n previewUrl={this.previewUrl}\n generations={this.generations}\n mocks={this.mocks}\n busy={this.busy}\n category={this.category}\n theme={this.theme}\n uiVersion={this.uiVersion}\n app={this.app}\n onComment={this.#handleComment}\n onApprove={this.#handleApprove}\n onViewAttrPrompt={this.#handleViewAttrPrompt}\n />\n );\n }\n}\n\nexport interface RawDataPreviewComponentProps extends RawPreviewProps {\n onComment: (detail: CommentDetail) => void;\n onApprove: (detail: ApproveDetail) => void;\n onViewAttrPrompt: (detail: AttributeGeneration) => void;\n}\n\nexport function RawDataPreviewComponent({\n previewUrl,\n generations,\n mocks,\n busy,\n category,\n theme,\n uiVersion,\n app,\n onComment,\n onApprove,\n onViewAttrPrompt,\n}: RawDataPreviewComponentProps) {\n const iframeRef = useRef<HTMLIFrameElement>();\n const [ready, setReady] = useState(false);\n const [injected, setInjected] = useState(false);\n const propertyToggleStateRef = useRef<string[]>([]);\n const propertyExpandStateRef = useRef<string[]>([]);\n const propertyApproveStateRef = useRef<string[]>([]);\n\n useEffect(() => {\n propertyApproveStateRef.current =\n generations\n ?.filter((generation) => generation.approved)\n .map((generation) => generation.propertyId) ?? [];\n }, [generations]);\n\n const handleIframeLoad = useCallback(() => {\n const check = () => {\n const iframeWin = iframeRef.current?.contentWindow as PreviewWindow;\n if (iframeWin?._preview_only_render) {\n setReady(true);\n } else {\n setTimeout(check, 100);\n }\n };\n check();\n }, []);\n\n useEffect(() => {\n if (ready) {\n const iframeWin = iframeRef.current!.contentWindow as PreviewWindow;\n iframeWin.postMessage(\n {\n channel: \"raw-data-preview\",\n type: \"busy\",\n payload: busy,\n },\n location.origin\n );\n }\n }, [busy, ready]);\n\n useEffect(() => {\n if (ready) {\n const iframeWin = iframeRef.current!.contentWindow as PreviewWindow;\n const onMessage = ({ data }: MessageEvent<PreviewMessage>) => {\n if (data?.channel === \"raw-data-preview\") {\n switch (data.type) {\n case \"comment\":\n onComment(data.payload);\n break;\n case \"approve\":\n onApprove(data.payload);\n break;\n case \"viewAttrPrompt\":\n onViewAttrPrompt(data.payload);\n break;\n case \"updatePropertyToggleState\":\n propertyToggleStateRef.current = data.payload;\n break;\n case \"updatePropertyExpandState\":\n propertyExpandStateRef.current = data.payload;\n break;\n case \"updatePropertyApproveState\":\n propertyApproveStateRef.current = data.payload;\n break;\n }\n }\n };\n iframeWin.addEventListener(\"message\", onMessage);\n return () => {\n iframeWin.removeEventListener(\"message\", onMessage);\n };\n }\n }, [onApprove, onComment, onViewAttrPrompt, ready]);\n\n useEffect(() => {\n if (!ready) {\n return;\n }\n const pkg = __compat_internals.getBrickPackagesById(\n \"bricks/visual-builder\"\n );\n if (!pkg) {\n throw new Error(\n \"Cannot find preview agent package: bricks/visual-builder\"\n );\n }\n const inject = (iframeRef.current!.contentWindow as PreviewWindow)!\n ._preview_only_inject;\n\n const fixedPkg = {\n ...pkg,\n filePath: previewUrl\n ? new URL(pkg.filePath, new URL(previewUrl, location.origin)).toString()\n : `${location.origin}${getBasePath()}${\n window.PUBLIC_ROOT ?? \"\"\n }${pkg.filePath}`,\n };\n\n Promise.allSettled(\n [\n \"visual-builder.pre-generated-table-view\",\n \"visual-builder.pre-generated-container\",\n ].map((brick) => inject(brick, fixedPkg, undefined, true))\n ).then(() => {\n setInjected(true);\n });\n }, [previewUrl, ready]);\n\n useEffect(() => {\n if (!injected) {\n return;\n }\n const render = (iframeRef.current?.contentWindow as PreviewWindow)\n ?._preview_only_render;\n if (!render) {\n return;\n }\n\n const tableChildren: BrickConf[] = [\n {\n brick: \"div\",\n properties: {\n textContent: \"属性\",\n className: \"head-cell\",\n },\n },\n {\n brick: \"div\",\n properties: {\n textContent: \"\",\n className: \"head-cell\",\n },\n },\n {\n brick: \"div\",\n properties: {\n textContent: \"类型\",\n className: \"head-cell\",\n },\n },\n {\n brick: \"div\",\n properties: {\n textContent: \"原始数据\",\n className: \"head-cell\",\n },\n },\n {\n brick: \"div\",\n properties: {\n textContent: \"视觉重量 (由低至高)\",\n className: \"head-cell\",\n style: {\n gridColumn: \"span 4\",\n textAlign: \"center\",\n },\n },\n },\n {\n brick: \"div\",\n properties: {\n textContent: \"确认\",\n className: \"head-cell\",\n },\n },\n {\n brick: \"div\",\n properties: {\n className: \"head-cell last-col-cell\",\n },\n children: [\n {\n brick: \"span\",\n properties: {\n textContent: \"批注\",\n },\n },\n {\n brick: \"span\",\n properties: {\n className: \"tips\",\n textContent: \"(补充提示词,按住 ⌘ 或 ctrl + 回车提交)\",\n },\n },\n ],\n },\n ];\n const table: BrickConf & { context?: ContextConf[] } = {\n brick: \"visual-builder.pre-generated-table-view\",\n context: [\n {\n name: \"propertyToggleState\",\n value: propertyToggleStateRef.current,\n onChange: {\n action: \"window.postMessage\",\n args: [\n {\n channel: \"raw-data-preview\",\n type: \"updatePropertyToggleState\",\n payload: \"<% CTX.propertyToggleState %>\",\n },\n ],\n },\n },\n {\n name: \"propertyExpandState\",\n value: propertyExpandStateRef.current,\n onChange: {\n action: \"window.postMessage\",\n args: [\n {\n channel: \"raw-data-preview\",\n type: \"updatePropertyExpandState\",\n payload: \"<% CTX.propertyExpandState %>\",\n },\n ],\n },\n },\n {\n name: \"propertyApproveState\",\n value: propertyApproveStateRef.current,\n onChange: {\n action: \"window.postMessage\",\n args: [\n {\n channel: \"raw-data-preview\",\n type: \"updatePropertyApproveState\",\n payload: \"<% CTX.propertyApproveState %>\",\n },\n ],\n },\n },\n {\n name: \"busy\",\n },\n ],\n properties: {\n style: {\n gridTemplateColumns:\n \"minmax(120px, 0.5fr) 32px auto repeat(5, 1fr) auto 1fr\",\n },\n },\n children: tableChildren,\n };\n\n for (let i = 0, size = generations.length; i < size; i++) {\n const generation = generations[i];\n const isLastRow = i === size - 1;\n\n const candidatesByVisualWeight = new Map<number, VisualConfig>();\n for (const candidate of generation.candidates ?? []) {\n candidatesByVisualWeight.set(candidate.visualWeight ?? 0, candidate);\n }\n\n tableChildren.push(\n {\n brick: \"div\",\n properties: {\n className: classNames(\"body-cell\", {\n \"last-row-cell\": isLastRow,\n }),\n },\n children: [\n {\n brick: \"span\",\n properties: {\n textContent: `${generation.propertyName ?? generation.propertyId}`,\n },\n },\n {\n // 多个示例的展开/收起按钮\n brick: \"eo-button\",\n properties: {\n className: \"btn-toggle\",\n type: \"text\",\n icon: `<%=\n {\n lib: \"fa\",\n prefix: \"fas\",\n icon: CTX.propertyToggleState.includes(${JSON.stringify(generation.propertyId)}) ? \"chevron-up\" : \"chevron-down\",\n }\n %>`,\n },\n events: {\n click: {\n action: \"context.replace\",\n args: [\n \"propertyToggleState\",\n `<%\n CTX.propertyToggleState.includes(${JSON.stringify(generation.propertyId)})\n ? CTX.propertyToggleState.filter((id) => id !== ${JSON.stringify(generation.propertyId)})\n : CTX.propertyToggleState.concat(${JSON.stringify(generation.propertyId)})\n %>`,\n ],\n },\n },\n },\n ],\n },\n {\n // 绿色圆点表示已生成\n brick: \"div\",\n properties: {\n className: classNames(\"body-cell\", {\n \"last-row-cell\": isLastRow,\n }),\n },\n children: generation.candidates?.length\n ? [\n {\n brick: \"eo-icon\",\n properties: {\n lib: \"fa\",\n prefix: \"fas\",\n icon: \"circle\",\n style: {\n color: generation.generationId\n ? \"var(--palette-green-6)\"\n : \"var(--palette-gray-6)\",\n transformOrigin: \"center center\",\n transform: \"scale(0.5)\",\n },\n },\n },\n ]\n : undefined,\n },\n {\n brick: \"div\",\n properties: {\n className: classNames(\"body-cell\", {\n \"last-row-cell\": isLastRow,\n }),\n },\n children: [\n {\n brick: \"eo-link\",\n properties: {\n type: \"text\",\n textContent: generation.propertyType,\n },\n events: {\n click: {\n action: \"window.postMessage\",\n args: [\n {\n channel: \"raw-data-preview\",\n type: \"viewAttrPrompt\",\n payload: generation,\n },\n ],\n },\n },\n },\n ],\n }\n );\n\n let values = generation.propertyValues;\n if (!values) {\n const mockList = (generation.mockData ?? mocks ?? []).slice();\n mockList.sort((ma, mb) => {\n const a = ma?.[generation.propertyId];\n const b = mb?.[generation.propertyId];\n const aIsArray = Array.isArray(a);\n const bIsArray = Array.isArray(b);\n if (aIsArray || bIsArray) {\n return (bIsArray ? b.length : -1) - (aIsArray ? a.length : -1);\n }\n const aIsNil = a == null;\n const bIsNil = b == null;\n if (aIsNil || bIsNil) {\n return (bIsNil ? 0 : 1) - (aIsNil ? 0 : 1);\n }\n\n const aIsEmpty = typeof a === \"string\" && a.length === 0;\n const bIsEmpty = typeof b === \"string\" && b.length === 0;\n if (aIsEmpty || bIsEmpty) {\n return (bIsEmpty ? 0 : 1) - (aIsEmpty ? 0 : 1);\n }\n return 0;\n });\n values = mockList.map((mock) => mock[generation.propertyId]);\n }\n\n // 原始数据\n tableChildren.push({\n brick: \"div\",\n properties: {\n className: classNames(\"body-cell\", {\n \"last-row-cell\": isLastRow,\n }),\n },\n children: [\n {\n brick: \"div\",\n properties: {\n className: \"list\",\n },\n children: values.map((mock, index) => ({\n brick: \"div\",\n if:\n index === 0\n ? true\n : `<%= CTX.propertyToggleState.includes(${JSON.stringify(generation.propertyId)}) %>`,\n properties: {\n className: `<%= \\`raw-content\\${ CTX.propertyExpandState.includes(${JSON.stringify(generation.propertyId)}) ? \" expand\" : \"\" }\\` %>`,\n textContent:\n mock === undefined\n ? \"\"\n : typeof mock === \"string\"\n ? mock\n : JSON.stringify(mock, null, 2),\n },\n })),\n },\n {\n // 原始数据的展开/收起按钮\n brick: \"eo-button\",\n properties: {\n className: \"btn-toggle\",\n type: \"text\",\n icon: `<%=\n {\n lib: \"fa\",\n prefix: \"fas\",\n icon: CTX.propertyExpandState.includes(${JSON.stringify(generation.propertyId)}) ? \"chevron-up\" : \"chevron-down\",\n }\n %>`,\n },\n events: {\n click: {\n action: \"context.replace\",\n args: [\n \"propertyExpandState\",\n `<%\n CTX.propertyExpandState.includes(${JSON.stringify(generation.propertyId)})\n ? CTX.propertyExpandState.filter((id) => id !== ${JSON.stringify(generation.propertyId)})\n : CTX.propertyExpandState.concat(${JSON.stringify(generation.propertyId)})\n %>`,\n ],\n },\n },\n },\n ],\n });\n\n // 生成的编排\n for (let i = -1; i < 3; i++) {\n const candidate = candidatesByVisualWeight.get(i);\n\n let brick: BrickConf;\n if (candidate) {\n brick = convertToStoryboard(candidate, generation.propertyId);\n }\n\n tableChildren.push({\n brick: \"div\",\n properties: {\n className: classNames(\"body-cell\", {\n \"last-row-cell\": isLastRow,\n }),\n },\n children: [\n {\n brick: \"div\",\n properties: {\n className: \"list\",\n },\n children: brick\n ? values.map((mock, index) => ({\n brick: \"visual-builder.pre-generated-container\",\n if:\n index === 0\n ? true\n : `<%= CTX.propertyToggleState.includes(${JSON.stringify(generation.propertyId)}) %>`,\n properties: {\n useBrick: [brick],\n dataSource: {\n [generation.propertyId]: mock,\n },\n },\n errorBoundary: true,\n }))\n : undefined,\n },\n ],\n });\n }\n\n tableChildren.push(\n {\n // 确认 checkbox\n brick: \"div\",\n properties: {\n className: classNames(\"body-cell\", {\n \"last-row-cell\": isLastRow,\n }),\n },\n children: generation.candidates\n ? [\n {\n brick: \"eo-checkbox\",\n properties: {\n value: `<%= CTX.propertyApproveState.includes(${JSON.stringify(generation.propertyId)}) ? [\"approved\"] : [] %>`,\n options: [{ label: \"\", value: \"approved\" }],\n disabled: `<%= CTX.busy || ${JSON.stringify(!generation.generationId)} %>`,\n },\n events: {\n change: [\n {\n action: \"window.postMessage\",\n args: [\n {\n channel: \"raw-data-preview\",\n type: \"approve\",\n payload: {\n approved: \"<% EVENT.detail.length > 0 %>\",\n propertyInstanceId: generation.propertyInstanceId,\n },\n },\n ],\n },\n {\n action: \"context.replace\",\n args: [\n \"propertyApproveState\",\n `<%\n EVENT.detail.length > 0\n ? CTX.propertyApproveState.concat(${JSON.stringify(generation.propertyId)})\n : CTX.propertyApproveState.filter((id) => id !== ${JSON.stringify(generation.propertyId)})\n %>`,\n ],\n },\n ],\n },\n },\n ]\n : undefined,\n },\n {\n // 批注 textarea\n brick: \"div\",\n properties: {\n className: classNames(\"body-cell\", {\n \"last-col-cell\": true,\n \"last-row-cell\": isLastRow,\n }),\n },\n children: generation.candidates\n ? [\n {\n brick: \"eo-textarea\",\n properties: {\n value: generation.comment\n ? `<% ${JSON.stringify(generation.comment)} %>`\n : undefined,\n autoSize: true,\n style: {\n width: \"100%\",\n },\n disabled: `<%= CTX.busy || CTX.propertyApproveState.includes(${JSON.stringify(generation.propertyId)}) %>`,\n },\n events: {\n keydown: {\n if: \"<% EVENT.code === 'Enter' && (EVENT.metaKey || EVENT.ctrlKey) %>\",\n action: \"window.postMessage\",\n args: [\n {\n channel: \"raw-data-preview\",\n type: \"comment\",\n payload: {\n comment: \"<% EVENT.target.value %>\",\n propertyInstanceId: generation.propertyInstanceId,\n },\n },\n ],\n },\n },\n },\n ]\n : undefined,\n }\n );\n }\n\n render(\n \"yaml\",\n {\n yaml: safeDump(\n [\n table,\n {\n brick: \"eo-message-listener\",\n properties: {\n sameOrigin: true,\n },\n events: {\n message: {\n if: \"<% EVENT.detail.data?.channel === 'raw-data-preview' && EVENT.detail.data.type === 'busy' %>\",\n action: \"context.replace\",\n args: [\"busy\", \"<% EVENT.detail.data.payload %>\"],\n },\n },\n portal: true,\n errorBoundary: true,\n },\n ],\n {\n schema: JSON_SCHEMA,\n skipInvalid: true,\n noRefs: true,\n noCompatMode: true,\n }\n ),\n },\n {\n app,\n theme,\n uiVersion,\n styleText: previewStyleText,\n }\n );\n }, [app, injected, generations, theme, uiVersion, category, mocks]);\n\n return (\n <div className={classNames(\"container\")}>\n <iframe\n ref={iframeRef}\n src={previewUrl ?? `${getBasePath()}_brick-preview-v3_/preview/`}\n loading=\"lazy\"\n onLoad={handleIframeLoad}\n />\n </div>\n );\n}\n","// istanbul ignore file\nimport { __secret_internals as _internals } from \"@next-core/runtime\";\nimport type { BrickPackage } from \"@next-core/types\";\n\ninterface DLL {\n (moduleId: \"tYg3\"): {\n developHelper: {\n getBrickPackages?: () => BrickPackage[];\n };\n };\n}\n\nlet __secret_internals = _internals;\n\n// Make v3 bricks compatible with Brick Next v2.\ntry {\n const dll = (window as unknown as { dll?: DLL }).dll;\n if (\n dll &&\n window.BRICK_NEXT_VERSIONS?.[\"brick-container\"]?.startsWith(\"2.\")\n ) {\n const { developHelper: developHelperV2 } = dll(\"tYg3\");\n __secret_internals = {\n getBrickPackagesById(id: string) {\n return developHelperV2\n .getBrickPackages?.()\n .find((pkg) => pkg.id === id);\n },\n } as any;\n }\n} catch (e) {\n // eslint-disable-next-line no-console\n console.error(\"Try to use v2 runtime APIs failed:\", e);\n}\n\n/**\n * The `__secret_internals` that is compatible in both v3 and v2.\n */\nexport const __compat_internals = __secret_internals;\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, `body{background-color:transparent}#preview-root{padding:0;height:auto;max-height:100vh;overflow-y:auto;border:1px solid var(--theme-gray-border-color);border-radius:4px;background:var(--body-background)}.head-cell{position:sticky;top:0;z-index:1;font-weight:bold}.head-cell,\n.body-cell{background:var(--body-background)}.body-cell{display:flex;align-items:center;justify-content:space-between}.last-col-cell{border-right-color:transparent}.last-row-cell{border-bottom-color:transparent}.form-container > ::part(message){display:none}.list{display:flex;flex-direction:column;gap:8px;overflow:hidden}.raw-content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-color-secondary)}.raw-content.expand{white-space:pre-wrap}.tips{color:var(--text-color-secondary);font-weight:normal}.body-cell:not(:hover) .btn-toggle{visibility:hidden}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.container,\niframe{width:100%;height:100%;border-radius:4px}.container{position:relative}iframe{display:block;border:none;margin:0;padding:0;transform-origin:0% 0%;-webkit-user-select:none;user-select:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (i) {\n return i[1];\n};","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import _typeof from \"./typeof.js\";\nexport default function setFunctionName(e, t, n) {\n \"symbol\" == _typeof(t) && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\");\n try {\n Object.defineProperty(e, \"name\", {\n configurable: !0,\n value: n ? n + \" \" + t : t\n });\n } catch (e) {}\n return e;\n}","import _typeof from \"./typeof.js\";\nimport checkInRHS from \"./checkInRHS.js\";\nimport setFunctionName from \"./setFunctionName.js\";\nimport toPropertyKey from \"./toPropertyKey.js\";\nexport default function applyDecs2311(e, t, n, r, o, i) {\n var a,\n c,\n u,\n s,\n f,\n l,\n p,\n d = Symbol.metadata || Symbol[\"for\"](\"Symbol.metadata\"),\n m = Object.defineProperty,\n h = Object.create,\n y = [h(null), h(null)],\n v = t.length;\n function g(t, n, r) {\n return function (o, i) {\n n && (i = o, o = e);\n for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []);\n return r ? i : o;\n };\n }\n function b(e, t, n, r) {\n if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\"));\n return e;\n }\n function applyDec(e, t, n, r, o, i, u, s, f, l, p) {\n function d(e) {\n if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\");\n }\n var h = [].concat(t[0]),\n v = t[3],\n w = !u,\n D = 1 === o,\n S = 3 === o,\n j = 4 === o,\n E = 2 === o;\n function I(t, n, r) {\n return function (o, i) {\n return n && (i = o, o = e), r && r(o), P[t].call(o, i);\n };\n }\n if (!w) {\n var P = {},\n k = [],\n F = S ? \"get\" : j || D ? \"set\" : \"value\";\n if (f ? (l || D ? P = {\n get: setFunctionName(function () {\n return v(this);\n }, r, \"get\"),\n set: function set(e) {\n t[4](this, e);\n }\n } : P[F] = v, l || setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) {\n if ((c = y[+s][r]) && 7 != (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\");\n y[+s][r] = o < 3 ? 1 : o;\n }\n }\n for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) {\n var z = b(h[O], \"A decorator\", \"be\", !0),\n A = n ? h[O - 1] : void 0,\n H = {},\n K = {\n kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o],\n name: r,\n metadata: a,\n addInitializer: function (e, t) {\n if (e.v) throw Error(\"attempted to call addInitializer after decoration was finished\");\n b(t, \"An initializer\", \"be\", !0), i.push(t);\n }.bind(null, H)\n };\n if (w) c = z.call(A, N, K), H.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (K[\"static\"] = s, K[\"private\"] = f, c = K.access = {\n has: f ? p.bind() : function (e) {\n return r in e;\n }\n }, j || (c.get = f ? E ? function (e) {\n return d(e), P.value;\n } : I(\"get\", 0, d) : function (e) {\n return e[r];\n }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) {\n e[r] = t;\n }), N = z.call(A, D ? {\n get: P.get,\n set: P.set\n } : P[F], K), H.v = 1, D) {\n if (\"object\" == _typeof(N) && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\");\n } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N);\n }\n return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N;\n }\n function w(e) {\n return m(e, d, {\n configurable: !0,\n enumerable: !0,\n value: a\n });\n }\n return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function l(e) {\n e && f.push(g(e));\n }, p = function p(t, r) {\n for (var i = 0; i < n.length; i++) {\n var a = n[i],\n c = a[1],\n l = 7 & c;\n if ((8 & c) == t && !l == r) {\n var p = a[2],\n d = !!a[3],\n m = 16 & c;\n applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) {\n return checkInRHS(t) === e;\n } : o);\n }\n }\n }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), {\n e: c,\n get c() {\n var n = [];\n return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)];\n }\n };\n}","export default function _assertClassBrand(e, t, n) {\n if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n throw new TypeError(\"Private element is not present on this object\");\n}","import _typeof from \"./typeof.js\";\nexport default function _checkInRHS(e) {\n if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? _typeof(e) : \"null\"));\n return e;\n}","export default function _checkPrivateRedeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n}","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateFieldGet2(s, a) {\n return s.get(assertClassBrand(s, a));\n}","import checkPrivateRedeclaration from \"./checkPrivateRedeclaration.js\";\nexport default function _classPrivateFieldInitSpec(obj, privateMap, value) {\n checkPrivateRedeclaration(obj, privateMap);\n privateMap.set(obj, value);\n}","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateFieldSet2(s, a, r) {\n return s.set(assertClassBrand(s, a), r), r;\n}","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateGetter(s, r, a) {\n return a(assertClassBrand(s, r));\n}","import checkPrivateRedeclaration from \"./checkPrivateRedeclaration.js\";\nexport default function _classPrivateMethodInitSpec(obj, privateSet) {\n checkPrivateRedeclaration(obj, privateSet);\n privateSet.add(obj);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}"],"names":["defineElement","property","event","createDecorators","_RawDataPreview","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_RawDataPreview_brand","WeakSet","_handleComment","_J","_handleApprove","_K","_handleViewAttrPrompt","RawDataPreview","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_init_previewUrl","_init_extra_previewUrl","_init_generations","_init_extra_generations","_init_mocks","_init_extra_mocks","_init_busy","_init_extra_busy","_init_category","_init_extra_category","_init_theme","_init_extra_theme","_init_uiVersion","_init_extra_uiVersion","_init_app","_init_extra_app","_init_commentEvent","_init_extra_commentEvent","detail","_classPrivateGetter","this","_get_commentEvent","emit","_init_approveEvent","_init_extra_approveEvent","_get_approveEvent","_init_viewAttrPromptEvent","_init_extra_viewAttrPromptEvent","_get_viewAttrPromptEvent","previewUrl","_classPrivateFieldGet","v","_classPrivateFieldSet","generations","mocks","busy","category","theme","uiVersion","app","render","React","RawDataPreviewComponent","onComment","onApprove","onViewAttrPrompt","_ref","iframeRef","useRef","ready","setReady","useState","injected","setInjected","propertyToggleStateRef","propertyExpandStateRef","propertyApproveStateRef","useEffect","_generations$filter$m","current","filter","generation","approved","map","propertyId","handleIframeLoad","useCallback","check","_iframeRef$current","iframeWin","contentWindow","_preview_only_render","setTimeout","postMessage","channel","type","payload","location","origin","onMessage","_ref2","data","addEventListener","removeEventListener","_window$PUBLIC_ROOT","pkg","__compat_internals","getBrickPackagesById","Error","inject","_preview_only_inject","fixedPkg","filePath","URL","toString","getBasePath","window","PUBLIC_ROOT","Promise","allSettled","brick","undefined","then","_iframeRef$current2","tableChildren","properties","textContent","className","style","gridColumn","textAlign","children","table","context","name","value","onChange","action","args","gridTemplateColumns","i","size","length","_generation$propertyN","_generation$candidate2","isLastRow","candidatesByVisualWeight","Map","candidate","_generation$candidate","candidates","_candidate$visualWeig","set","visualWeight","push","classNames","propertyName","icon","JSON","stringify","events","click","lib","prefix","color","generationId","transformOrigin","transform","propertyType","values","propertyValues","_ref3","_generation$mockData","mockList","mockData","slice","sort","ma","mb","a","b","aIsArray","Array","isArray","bIsArray","aIsNil","bIsNil","aIsEmpty","bIsEmpty","mock","index","if","get","convertToStoryboard","useBrick","dataSource","errorBoundary","options","label","disabled","change","propertyInstanceId","comment","autoSize","width","keydown","yaml","safeDump","sameOrigin","message","portal","schema","JSON_SCHEMA","skipInvalid","noRefs","noCompatMode","styleText","previewStyleText","ref","src","loading","onLoad","_RawDataPreview2","e","_set_commentEvent","_set_approveEvent","_set_viewAttrPromptEvent","c","_initClass","_applyDecs","styleTexts","attribute","Boolean","o","_","has","_checkInRHS","__secret_internals","_internals","_window$BRICK_NEXT_VE","dll","BRICK_NEXT_VERSIONS","startsWith","developHelper","developHelperV2","id","_developHelperV2$getB","getBrickPackages","call","find","console","error","___CSS_LOADER_EXPORT___","module","exports","cssWithMappingToString","list","item","content","needLayer","concat","join","modules","media","dedupe","supports","layer","alreadyImportedModules","k","_k","hasOwn","hasOwnProperty","classes","arg","appendClass","parseValue","apply","Object","prototype","includes","key","newClass","default","setFunctionName","t","n","description","defineProperty","configurable","applyDecs2311","r","u","s","f","l","p","d","Symbol","metadata","m","h","create","y","g","TypeError","applyDec","w","D","S","j","E","I","P","F","getOwnPropertyDescriptor","N","O","z","A","H","K","kind","addInitializer","bind","access","init","unshift","splice","enumerable","toPropertyKey","checkInRHS","_assertClassBrand","_checkPrivateRedeclaration","obj","privateCollection","_classPrivateFieldGet2","privateMap","_classPrivateFieldSet2","privateSet","add","toPrimitive","String","_typeof","iterator"],"sourceRoot":""}
|
|
File without changes
|