@next-bricks/visual-builder 1.39.15 → 1.39.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bricks.json +10 -10
- package/dist/chunks/{5522.678c03f6.js → 4577.f016e9de.js} +3 -3
- package/dist/chunks/4577.f016e9de.js.map +1 -0
- package/dist/chunks/6411.40f47da3.js +3 -0
- package/dist/chunks/6411.40f47da3.js.map +1 -0
- package/dist/chunks/7085.3c330b29.js +3 -0
- package/dist/chunks/7085.3c330b29.js.map +1 -0
- package/dist/chunks/9653.ac443b19.js +2 -0
- package/dist/chunks/9653.ac443b19.js.map +1 -0
- package/dist/chunks/chat-conversation.0ffc333f.js +3 -0
- package/dist/chunks/chat-conversation.0ffc333f.js.map +1 -0
- package/dist/chunks/chat-preview.36976c55.js.map +1 -1
- package/dist/chunks/contract-select.252b9e45.js +3 -0
- package/dist/chunks/contract-select.252b9e45.js.map +1 -0
- package/dist/chunks/generate-snippets-context-menu.56acf448.js.map +1 -1
- package/dist/chunks/main.1cb52df3.js +2 -0
- package/dist/chunks/{main.1c5337dd.js.map → main.1cb52df3.js.map} +1 -1
- package/dist/chunks/page-arch-node.379284ad.js +3 -0
- package/dist/chunks/page-arch-node.379284ad.js.map +1 -0
- package/dist/chunks/pre-generated-config-preview.cfbc2a1e.js.map +1 -1
- package/dist/chunks/pre-generated-config.a027788b.js.map +1 -1
- package/dist/chunks/pre-generated-container.dcfa8cc9.js.map +1 -1
- package/dist/chunks/pre-generated-preview.8e699675.js.map +1 -1
- package/dist/chunks/pre-generated-table-view.8a9d5527.js.map +1 -1
- package/dist/chunks/property-editor.dea9895b.js +2 -0
- package/dist/chunks/property-editor.dea9895b.js.map +1 -0
- package/dist/chunks/raw-data-preview.0bf12da3.js.map +1 -1
- package/dist/chunks/raw-metric-preview.c503481e.js.map +1 -1
- package/dist/chunks/workbench-action-list.c67329ed.js.map +1 -1
- package/dist/chunks/workbench-action.5b993227.js.map +1 -1
- package/dist/chunks/workbench-pane.5c4866a6.js +3 -0
- package/dist/chunks/workbench-pane.5c4866a6.js.map +1 -0
- package/dist/chunks/workbench-sidebar.01731e99.js.map +1 -1
- package/dist/chunks/{workbench-tree.e71a583f.js → workbench-tree.7097bd88.js} +3 -3
- package/dist/chunks/workbench-tree.7097bd88.js.map +1 -0
- package/dist/examples.json +47 -5
- package/dist/index.93f39de8.js +2 -0
- package/dist/{index.90916d4c.js.map → index.93f39de8.js.map} +1 -1
- package/dist/manifest.json +217 -63
- package/dist/types.json +36 -36
- package/dist-types/chat-conversation/index.d.ts +7 -1
- package/dist-types/chat-preview/index.d.ts +20 -1
- package/dist-types/contract-select/index.d.ts +16 -1
- package/dist-types/generate-snippets-context-menu/index.d.ts +17 -1
- package/dist-types/page-arch-node/index.d.ts +25 -1
- package/dist-types/pre-generated-config/index.d.ts +16 -1
- package/dist-types/pre-generated-config-preview/index.d.ts +13 -1
- package/dist-types/pre-generated-container/index.d.ts +3 -1
- package/dist-types/pre-generated-preview/index.d.ts +6 -1
- package/dist-types/pre-generated-table-view/index.d.ts +1 -1
- package/dist-types/property-editor/index.d.ts +10 -4
- package/dist-types/raw-data-preview/index.d.ts +9 -1
- package/dist-types/raw-metric-preview/index.d.ts +8 -1
- package/dist-types/workbench-action/index.d.ts +7 -0
- package/dist-types/workbench-action-list/index.d.ts +3 -0
- package/dist-types/workbench-pane/index.d.ts +4 -0
- package/dist-types/workbench-sidebar/index.d.ts +2 -0
- package/dist-types/workbench-tree/index.d.ts +19 -6
- package/docs/chat-conversation.md +51 -31
- package/docs/chat-conversation.react.md +115 -0
- package/docs/chat-preview.md +83 -0
- package/docs/chat-preview.react.md +105 -0
- package/docs/contract-select.md +97 -0
- package/docs/contract-select.react.md +95 -0
- package/docs/generate-snippets-context-menu.md +141 -0
- package/docs/generate-snippets-context-menu.react.md +134 -0
- package/docs/page-arch-node.md +87 -1
- package/docs/page-arch-node.react.md +97 -0
- package/docs/pre-generated-config-preview.md +74 -0
- package/docs/pre-generated-config-preview.react.md +82 -0
- package/docs/pre-generated-config.md +96 -0
- package/docs/pre-generated-config.react.md +78 -0
- package/docs/pre-generated-container.md +56 -0
- package/docs/pre-generated-container.react.md +62 -0
- package/docs/pre-generated-preview.md +83 -0
- package/docs/pre-generated-preview.react.md +92 -0
- package/docs/pre-generated-table-view.md +46 -0
- package/docs/pre-generated-table-view.react.md +36 -0
- package/docs/property-editor.md +44 -1
- package/docs/property-editor.react.md +97 -0
- package/docs/raw-data-preview.md +75 -1643
- package/docs/raw-data-preview.react.md +154 -0
- package/docs/raw-metric-preview.md +93 -0
- package/docs/raw-metric-preview.react.md +94 -0
- package/docs/workbench-action-list.md +80 -0
- package/docs/workbench-action-list.react.md +85 -0
- package/docs/workbench-action.md +80 -0
- package/docs/workbench-action.react.md +76 -0
- package/docs/workbench-history-action.md +42 -1
- package/docs/workbench-history-action.react.md +54 -0
- package/docs/workbench-pane.md +105 -0
- package/docs/workbench-pane.react.md +90 -0
- package/docs/workbench-sidebar.md +88 -0
- package/docs/workbench-sidebar.react.md +66 -0
- package/docs/workbench-tree.md +217 -0
- package/docs/workbench-tree.react.md +180 -0
- package/package.json +2 -2
- package/dist/chunks/36.b158228e.js +0 -3
- package/dist/chunks/36.b158228e.js.map +0 -1
- package/dist/chunks/5522.678c03f6.js.map +0 -1
- package/dist/chunks/7085.c58ac475.js +0 -3
- package/dist/chunks/7085.c58ac475.js.map +0 -1
- package/dist/chunks/9653.e857fdaf.js +0 -2
- package/dist/chunks/9653.e857fdaf.js.map +0 -1
- package/dist/chunks/chat-conversation.d873f6d5.js +0 -3
- package/dist/chunks/chat-conversation.d873f6d5.js.map +0 -1
- package/dist/chunks/contract-select.ff891ded.js +0 -3
- package/dist/chunks/contract-select.ff891ded.js.map +0 -1
- package/dist/chunks/main.1c5337dd.js +0 -2
- package/dist/chunks/page-arch-node.974674c0.js +0 -3
- package/dist/chunks/page-arch-node.974674c0.js.map +0 -1
- package/dist/chunks/property-editor.6de6adf4.js +0 -2
- package/dist/chunks/property-editor.6de6adf4.js.map +0 -1
- package/dist/chunks/workbench-pane.7e85de42.js +0 -3
- package/dist/chunks/workbench-pane.7e85de42.js.map +0 -1
- package/dist/chunks/workbench-tree.e71a583f.js.map +0 -1
- package/dist/index.90916d4c.js +0 -2
- /package/dist/chunks/{5522.678c03f6.js.LICENSE.txt → 4577.f016e9de.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{36.b158228e.js.LICENSE.txt → 6411.40f47da3.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{7085.c58ac475.js.LICENSE.txt → 7085.3c330b29.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{chat-conversation.d873f6d5.js.LICENSE.txt → chat-conversation.0ffc333f.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{contract-select.ff891ded.js.LICENSE.txt → contract-select.252b9e45.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{page-arch-node.974674c0.js.LICENSE.txt → page-arch-node.379284ad.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{workbench-pane.7e85de42.js.LICENSE.txt → workbench-pane.5c4866a6.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{workbench-tree.e71a583f.js.LICENSE.txt → workbench-tree.7097bd88.js.LICENSE.txt} +0 -0
|
@@ -1,9 +1,34 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
tagName: visual-builder.chat-conversation
|
|
3
|
+
displayName: WrappedVisualBuilderChatConversation
|
|
4
|
+
description: 用于 Visual Builder 的智能聊天对话列表,解析 AI 回复中的 Storyboard 代码块并触发更新事件
|
|
5
|
+
category: ""
|
|
6
|
+
source: "@next-bricks/visual-builder"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# visual-builder.chat-conversation
|
|
10
|
+
|
|
11
|
+
> 用于 Visual Builder 的智能聊天对话列表,解析 AI 回复中的 Storyboard 代码块并触发更新事件
|
|
12
|
+
|
|
13
|
+
## Props
|
|
14
|
+
|
|
15
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
16
|
+
| ------------- | ----------- | ---- | ------ | ------------------------------------------------------------------------------- |
|
|
17
|
+
| messages | `Message[]` | 否 | - | 对话消息列表,包含用户和 AI 助手的消息,支持流式(partial)和失败(failed)状态 |
|
|
18
|
+
| errorBoundary | `boolean` | 否 | - | 是否为解析出的砖块启用错误边界,防止单个砖块异常导致整个预览崩溃 |
|
|
19
|
+
|
|
20
|
+
## Events
|
|
21
|
+
|
|
22
|
+
| 事件 | detail | 说明 |
|
|
23
|
+
| ----------------- | ------------------------------------ | ---------------------------------------- |
|
|
24
|
+
| storyboard.update | `BrickConf[]` — 解析出的砖块配置列表 | 从 AI 回复中解析出新的 Storyboard 时触发 |
|
|
2
25
|
|
|
3
26
|
## Examples
|
|
4
27
|
|
|
5
28
|
### Basic
|
|
6
29
|
|
|
30
|
+
展示包含用户消息和 AI 回复的完整对话列表,AI 回复中嵌入了 Storyboard 代码块。
|
|
31
|
+
|
|
7
32
|
````yaml preview
|
|
8
33
|
brick: visual-builder.chat-conversation
|
|
9
34
|
properties:
|
|
@@ -16,9 +41,9 @@ properties:
|
|
|
16
41
|
好的,我们来逐步确认页面的各个区块需求。
|
|
17
42
|
|
|
18
43
|
1. **页头区**:您需要在这个区域放置什么内容?比如标题、横幅图片或者搜索框等。
|
|
19
|
-
2.
|
|
44
|
+
2. **全局操作区**:您希望有哪些全局操作的按钮?如您所示,已有"管理"、"刷新"、"新建"、"删除"、"执行"、"导入"和"导出",这些都足够了吗?
|
|
20
45
|
3. **标签导航区**:是否需要多个标签页?如果有,需要显示哪些内容或数据?
|
|
21
|
-
4.
|
|
46
|
+
4. **数据控制区**:对于搜索,需要哪些字段作为搜索条件?"最近访问"和"基础筛选"需要哪些具体筛选条件?
|
|
22
47
|
5. **列表区**:列表中应显示主机的哪些属性?例如,是否显示`主机名`、`IP`、`供应商`等信息?是否需要编辑和删除功能?列表是否可排序?用户是否可以多选列表项?分页功能需要吗?
|
|
23
48
|
|
|
24
49
|
请根据您的需求回答这些问题,或者告诉我哪些区块的默认设置即可。
|
|
@@ -40,43 +65,19 @@ properties:
|
|
|
40
65
|
```
|
|
41
66
|
|
|
42
67
|
```easy_cmd_vb_block_page
|
|
43
|
-
[{"uuid": "96e55a2a556049eba1e5c1a8cd1e6ef3", "seq": 0, "conversationId": "db2e41dc-932c-4f76-aad4-19da09bea036", "brick": "", "brick_desc": "包含新建和删除按钮", "user_desc": "", "storyboard": null, "type": "block", "name": "全局操作区", "children": ["d7ef5946776445ba96ebf2beb2f680a5", "da3e65baf08d4fc28b938d1efd768265"], "parent": "", "properties": null, "hasContainer": false}, {"uuid": "d7ef5946776445ba96ebf2beb2f680a5", "seq": 0, "conversationId": "db2e41dc-932c-4f76-aad4-19da09bea036", "brick": "", "brick_desc": "生成一个新建按钮,textContent为新建,type为primary(主要按钮),大小为medium,形状为默认方形,非禁用状态,无危险状态,无图标,无tooltip", "user_desc": "", "storyboard": null, "type": "item", "name": "新建", "children": [], "parent": "96e55a2a556049eba1e5c1a8cd1e6ef3", "properties": null, "hasContainer": false}, {"uuid": "da3e65baf08d4fc28b938d1efd768265", "seq": 1, "conversationId": "db2e41dc-932c-4f76-aad4-19da09bea036", "brick": "", "brick_desc": "生成一个删除按钮,textContent为删除,type为danger(危险按钮),大小为medium,形状为默认方形,非禁用状态,有危险状态,无图标,无tooltip", "user_desc": "", "storyboard": null, "type": "item", "name": "删除", "children": [], "parent": "96e55a2a556049eba1e5c1a8cd1e6ef3", "properties": null, "hasContainer": false}, {"uuid": "
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
```easy_cmd_vb_block_storyboard
|
|
47
|
-
{"uuid": "d7ef5946776445ba96ebf2beb2f680a5", "storyboard": {"brick": "eo-button", "events": {"click": []}, "properties": {"textContent": "新建", "type": "primary", "size": "medium", "shape": "default", "buttonStyle": {"padding": "0 8px"}, "dataset": {"testid": "create-eo-button"}}}}
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
```easy_cmd_vb_block_storyboard
|
|
51
|
-
{"uuid": "da3e65baf08d4fc28b938d1efd768265", "storyboard": {"brick": "eo-button", "events": {"click": []}, "properties": {"textContent": "删除", "type": "danger", "size": "medium", "buttonStyle": {"padding": "0px 8px"}, "danger": true, "dataset": {"testid": "delete-button"}, "properties": {"danger": true, "type": "danger"}}}}
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
```easy_cmd_vb_block_storyboard
|
|
55
|
-
{"uuid": "92c07992c61d4f43b41e6a56e500622a", "storyboard": {"brick": "eo-form", "properties": {"layout": "inline"}}}
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
```easy_cmd_vb_block_storyboard
|
|
59
|
-
{"uuid": "e2f986f8379f4fd4bd3627855051c50e", "storyboard": {"brick": "eo-search", "events": {"search": []}, "properties": {"placeholder": "按IP地址搜索", "dataset": {"testid": "search"}}}}
|
|
68
|
+
[{"uuid": "96e55a2a556049eba1e5c1a8cd1e6ef3", "seq": 0, "conversationId": "db2e41dc-932c-4f76-aad4-19da09bea036", "brick": "", "brick_desc": "包含新建和删除按钮", "user_desc": "", "storyboard": null, "type": "block", "name": "全局操作区", "children": ["d7ef5946776445ba96ebf2beb2f680a5", "da3e65baf08d4fc28b938d1efd768265"], "parent": "", "properties": null, "hasContainer": false}, {"uuid": "d7ef5946776445ba96ebf2beb2f680a5", "seq": 0, "conversationId": "db2e41dc-932c-4f76-aad4-19da09bea036", "brick": "", "brick_desc": "生成一个新建按钮,textContent为新建,type为primary(主要按钮),大小为medium,形状为默认方形,非禁用状态,无危险状态,无图标,无tooltip", "user_desc": "", "storyboard": null, "type": "item", "name": "新建", "children": [], "parent": "96e55a2a556049eba1e5c1a8cd1e6ef3", "properties": null, "hasContainer": false}, {"uuid": "da3e65baf08d4fc28b938d1efd768265", "seq": 1, "conversationId": "db2e41dc-932c-4f76-aad4-19da09bea036", "brick": "", "brick_desc": "生成一个删除按钮,textContent为删除,type为danger(危险按钮),大小为medium,形状为默认方形,非禁用状态,有危险状态,无图标,无tooltip", "user_desc": "", "storyboard": null, "type": "item", "name": "删除", "children": [], "parent": "96e55a2a556049eba1e5c1a8cd1e6ef3", "properties": null, "hasContainer": false}, {"uuid": "a66ff62152ea4b808f2e5d957c24b2ef", "seq": 2, "conversationId": "db2e41dc-932c-4f76-aad4-19da09bea036", "brick": "", "brick_desc": "展示每条主机的IP、主机名、运营状态和创建时间", "user_desc": "", "storyboard": null, "type": "block", "name": "列表区", "children": [], "parent": "", "properties": null, "hasContainer": true}]
|
|
60
69
|
```
|
|
61
70
|
|
|
62
71
|
```easy_cmd_vb_block_storyboard
|
|
63
|
-
{"uuid": "
|
|
72
|
+
{"uuid": "d7ef5946776445ba96ebf2beb2f680a5", "storyboard": {"brick": "eo-button", "events": {"click": []}, "properties": {"textContent": "新建", "type": "primary", "size": "medium"}}}
|
|
64
73
|
```
|
|
65
74
|
|
|
66
75
|
```easy_cmd_vb_block_storyboard
|
|
67
|
-
{"uuid": "
|
|
76
|
+
{"uuid": "da3e65baf08d4fc28b938d1efd768265", "storyboard": {"brick": "eo-button", "events": {"click": []}, "properties": {"textContent": "删除", "type": "danger", "size": "medium", "danger": true}}}
|
|
68
77
|
```
|
|
69
78
|
|
|
70
79
|
```easy_cmd_vb_block_storyboard
|
|
71
|
-
{"uuid": "
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
```easy_cmd_vb_block_storyboard
|
|
75
|
-
{"uuid": "c04fef1e64ca4200a5843b579f71fbcf", "storyboard": {"brick": "eo-text", "properties": {"textContent": "<% DATA.cellData %>", "dataset": {"testid": "textContent"}}, "slot": "[_mac]"}}
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
```easy_cmd_vb_block_storyboard
|
|
79
|
-
{"uuid": "0b485a8a1b924d54adb8914763096723", "storyboard": {"brick": "eo-text", "properties": {"textContent": "<% DATA.cellData %>", "dataset": {"testid": "textContent"}}, "slot": "[osSystem]"}}
|
|
80
|
+
{"uuid": "a66ff62152ea4b808f2e5d957c24b2ef", "storyboard": {"brick": "eo-next-table", "properties": {"columns": [{"title": "IP", "dataIndex": "ip"}, {"title": "主机名", "dataIndex": "hostname"}, {"title": "运营状态", "dataIndex": "status"}, {"title": "创建时间", "dataIndex": "createTime"}], "dataSource": {"list": [{"ip": "192.168.1.1", "hostname": "host-001", "status": "运行中", "createTime": "2024-01-01"}]}}}}
|
|
80
81
|
```
|
|
81
82
|
key: 4
|
|
82
83
|
partial: true
|
|
@@ -87,6 +88,8 @@ events:
|
|
|
87
88
|
|
|
88
89
|
### Errors
|
|
89
90
|
|
|
91
|
+
展示包含失败消息的对话,failed 状态的消息会以错误样式展示。
|
|
92
|
+
|
|
90
93
|
```yaml preview
|
|
91
94
|
brick: visual-builder.chat-conversation
|
|
92
95
|
properties:
|
|
@@ -103,3 +106,20 @@ properties:
|
|
|
103
106
|
key: 3
|
|
104
107
|
failed: true
|
|
105
108
|
```
|
|
109
|
+
|
|
110
|
+
### With Error Boundary
|
|
111
|
+
|
|
112
|
+
启用错误边界后,单个砖块渲染失败不会导致整个预览崩溃。
|
|
113
|
+
|
|
114
|
+
```yaml preview
|
|
115
|
+
brick: visual-builder.chat-conversation
|
|
116
|
+
properties:
|
|
117
|
+
errorBoundary: true
|
|
118
|
+
messages:
|
|
119
|
+
- role: user
|
|
120
|
+
content: 生成一个简单页面
|
|
121
|
+
key: 1
|
|
122
|
+
- role: assistant
|
|
123
|
+
content: 好的,正在生成...
|
|
124
|
+
key: 2
|
|
125
|
+
```
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: visual-builder.chat-conversation
|
|
3
|
+
displayName: WrappedVisualBuilderChatConversation
|
|
4
|
+
description: 用于 Visual Builder 的智能聊天对话列表,解析 AI 回复中的 Storyboard 代码块并触发更新事件
|
|
5
|
+
category: ""
|
|
6
|
+
source: "@next-bricks/visual-builder"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# WrappedVisualBuilderChatConversation
|
|
10
|
+
|
|
11
|
+
> 用于 Visual Builder 的智能聊天对话列表,解析 AI 回复中的 Storyboard 代码块并触发更新事件
|
|
12
|
+
|
|
13
|
+
## 导入
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { WrappedVisualBuilderChatConversation } from "@easyops/wrapped-components";
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
22
|
+
| ------------- | ----------- | ---- | ------ | ------------------------------------------------------------------------------- |
|
|
23
|
+
| messages | `Message[]` | 否 | - | 对话消息列表,包含用户和 AI 助手的消息,支持流式(partial)和失败(failed)状态 |
|
|
24
|
+
| errorBoundary | `boolean` | 否 | - | 是否为解析出的砖块启用错误边界,防止单个砖块异常导致整个预览崩溃 |
|
|
25
|
+
|
|
26
|
+
## Events
|
|
27
|
+
|
|
28
|
+
| 事件 | detail | 说明 |
|
|
29
|
+
| ------------------ | ------------------------------------ | ---------------------------------------- |
|
|
30
|
+
| onStoryboardUpdate | `BrickConf[]` — 解析出的砖块配置列表 | 从 AI 回复中解析出新的 Storyboard 时触发 |
|
|
31
|
+
|
|
32
|
+
## Examples
|
|
33
|
+
|
|
34
|
+
### Basic
|
|
35
|
+
|
|
36
|
+
展示包含用户消息和 AI 回复的完整对话列表,AI 回复中嵌入了 Storyboard 代码块。
|
|
37
|
+
|
|
38
|
+
```tsx
|
|
39
|
+
<WrappedVisualBuilderChatConversation
|
|
40
|
+
messages={[
|
|
41
|
+
{
|
|
42
|
+
role: "user",
|
|
43
|
+
content: "生成一个主机列表页面",
|
|
44
|
+
key: 1,
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
role: "assistant",
|
|
48
|
+
content: "好的,我们来逐步确认页面的各个区块需求。",
|
|
49
|
+
key: 2,
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
role: "user",
|
|
53
|
+
content: "列表区展示每条主机的IP、主机名、运营状态、创建时间。",
|
|
54
|
+
key: 3,
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
role: "assistant",
|
|
58
|
+
content: "了解了您的需求,正在生成页面...",
|
|
59
|
+
key: 4,
|
|
60
|
+
partial: true,
|
|
61
|
+
},
|
|
62
|
+
]}
|
|
63
|
+
onStoryboardUpdate={(e) => console.log(e.detail)}
|
|
64
|
+
/>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Errors
|
|
68
|
+
|
|
69
|
+
展示包含失败消息的对话,failed 状态的消息会以错误样式展示。
|
|
70
|
+
|
|
71
|
+
```tsx
|
|
72
|
+
<WrappedVisualBuilderChatConversation
|
|
73
|
+
messages={[
|
|
74
|
+
{
|
|
75
|
+
role: "user",
|
|
76
|
+
content: "Create a page to show server host list.",
|
|
77
|
+
key: 1,
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
role: "assistant",
|
|
81
|
+
content: "OK, let's do it",
|
|
82
|
+
key: 2,
|
|
83
|
+
failed: true,
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
role: "assistant",
|
|
87
|
+
content: "Internal Server Error",
|
|
88
|
+
key: 3,
|
|
89
|
+
failed: true,
|
|
90
|
+
},
|
|
91
|
+
]}
|
|
92
|
+
/>
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### With Error Boundary
|
|
96
|
+
|
|
97
|
+
启用错误边界后,单个砖块渲染失败不会导致整个预览崩溃。
|
|
98
|
+
|
|
99
|
+
```tsx
|
|
100
|
+
<WrappedVisualBuilderChatConversation
|
|
101
|
+
errorBoundary={true}
|
|
102
|
+
messages={[
|
|
103
|
+
{
|
|
104
|
+
role: "user",
|
|
105
|
+
content: "生成一个简单页面",
|
|
106
|
+
key: 1,
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
role: "assistant",
|
|
110
|
+
content: "好的,正在生成...",
|
|
111
|
+
key: 2,
|
|
112
|
+
},
|
|
113
|
+
]}
|
|
114
|
+
/>
|
|
115
|
+
```
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: visual-builder.chat-preview
|
|
3
|
+
displayName: WrappedVisualBuilderChatPreview
|
|
4
|
+
description: Visual Builder 的聊天预览构件,在 iframe 中渲染 Storyboard 并支持元素检查模式
|
|
5
|
+
category: ""
|
|
6
|
+
source: "@next-bricks/visual-builder"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# visual-builder.chat-preview
|
|
10
|
+
|
|
11
|
+
> Visual Builder 的聊天预览构件,在 iframe 中渲染 Storyboard 并支持元素检查模式
|
|
12
|
+
|
|
13
|
+
## Props
|
|
14
|
+
|
|
15
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
16
|
+
| ---------- | -------------------------- | ---- | ------ | ---------------------------------------------------------------- |
|
|
17
|
+
| storyboard | `BrickConf \| BrickConf[]` | 否 | - | 要预览的砖块配置,支持单个或列表,更新后自动触发 iframe 重新渲染 |
|
|
18
|
+
| theme | `string` | 否 | - | 预览的主题,例如 "dark-v2" |
|
|
19
|
+
| uiVersion | `string` | 否 | - | 预览的 UI 版本,例如 "8.2" |
|
|
20
|
+
| app | `MicroApp` | 否 | - | 预览使用的 MicroApp 配置,影响 app 上下文 |
|
|
21
|
+
| inspecting | `boolean` | 否 | - | 是否开启元素检查模式,开启后鼠标悬停和点击时会显示元素轮廓高亮 |
|
|
22
|
+
|
|
23
|
+
## Events
|
|
24
|
+
|
|
25
|
+
| 事件 | detail | 说明 |
|
|
26
|
+
| ------------------- | ------------------------------------------------------------------------------- | ---------------------------------------------- |
|
|
27
|
+
| activeTarget.change | `InspectSelector \| undefined` — 当前激活的检查目标选择器,未选中时为 undefined | 用户在检查模式下点击元素时,激活目标变化时触发 |
|
|
28
|
+
|
|
29
|
+
## Methods
|
|
30
|
+
|
|
31
|
+
| 方法 | 参数 | 返回值 | 说明 |
|
|
32
|
+
| ------ | ------------------------------------ | ------ | ------------------------------------------------ |
|
|
33
|
+
| select | `(payload: InspectSelector) => void` | `void` | 向 iframe 内的预览代理发送选中指令,高亮指定元素 |
|
|
34
|
+
|
|
35
|
+
## Examples
|
|
36
|
+
|
|
37
|
+
### Basic
|
|
38
|
+
|
|
39
|
+
展示 Chat Preview 的基本用法,传入砖块配置后在 iframe 中渲染预览。
|
|
40
|
+
|
|
41
|
+
```yaml preview
|
|
42
|
+
brick: visual-builder.chat-preview
|
|
43
|
+
properties:
|
|
44
|
+
storyboard:
|
|
45
|
+
- brick: eo-button
|
|
46
|
+
properties:
|
|
47
|
+
textContent: 预览按钮
|
|
48
|
+
type: primary
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### With Theme
|
|
52
|
+
|
|
53
|
+
指定预览主题和 UI 版本,使预览效果与目标环境匹配。
|
|
54
|
+
|
|
55
|
+
```yaml preview
|
|
56
|
+
brick: visual-builder.chat-preview
|
|
57
|
+
properties:
|
|
58
|
+
theme: dark-v2
|
|
59
|
+
uiVersion: "8.2"
|
|
60
|
+
storyboard:
|
|
61
|
+
- brick: eo-button
|
|
62
|
+
properties:
|
|
63
|
+
textContent: 暗色主题预览
|
|
64
|
+
type: primary
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Inspect Mode
|
|
68
|
+
|
|
69
|
+
开启检查模式,鼠标悬停时显示元素轮廓,点击时触发激活目标变化事件。
|
|
70
|
+
|
|
71
|
+
```yaml preview
|
|
72
|
+
brick: visual-builder.chat-preview
|
|
73
|
+
properties:
|
|
74
|
+
inspecting: true
|
|
75
|
+
storyboard:
|
|
76
|
+
- brick: eo-button
|
|
77
|
+
properties:
|
|
78
|
+
textContent: 点击以检查
|
|
79
|
+
type: primary
|
|
80
|
+
events:
|
|
81
|
+
activeTarget.change:
|
|
82
|
+
action: console.log
|
|
83
|
+
```
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: visual-builder.chat-preview
|
|
3
|
+
displayName: WrappedVisualBuilderChatPreview
|
|
4
|
+
description: Visual Builder 的聊天预览构件,在 iframe 中渲染 Storyboard 并支持元素检查模式
|
|
5
|
+
category: ""
|
|
6
|
+
source: "@next-bricks/visual-builder"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# WrappedVisualBuilderChatPreview
|
|
10
|
+
|
|
11
|
+
> Visual Builder 的聊天预览构件,在 iframe 中渲染 Storyboard 并支持元素检查模式
|
|
12
|
+
|
|
13
|
+
## 导入
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { WrappedVisualBuilderChatPreview } from "@easyops/wrapped-components";
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
22
|
+
| ---------- | -------------------------- | ---- | ------ | ---------------------------------------------------------------- |
|
|
23
|
+
| storyboard | `BrickConf \| BrickConf[]` | 否 | - | 要预览的砖块配置,支持单个或列表,更新后自动触发 iframe 重新渲染 |
|
|
24
|
+
| theme | `string` | 否 | - | 预览的主题,例如 "dark-v2" |
|
|
25
|
+
| uiVersion | `string` | 否 | - | 预览的 UI 版本,例如 "8.2" |
|
|
26
|
+
| app | `MicroApp` | 否 | - | 预览使用的 MicroApp 配置,影响 app 上下文 |
|
|
27
|
+
| inspecting | `boolean` | 否 | - | 是否开启元素检查模式,开启后鼠标悬停和点击时会显示元素轮廓高亮 |
|
|
28
|
+
|
|
29
|
+
## Events
|
|
30
|
+
|
|
31
|
+
| 事件 | detail | 说明 |
|
|
32
|
+
| -------------------- | ------------------------------------------------------------------------------- | ---------------------------------------------- |
|
|
33
|
+
| onActiveTargetChange | `InspectSelector \| undefined` — 当前激活的检查目标选择器,未选中时为 undefined | 用户在检查模式下点击元素时,激活目标变化时触发 |
|
|
34
|
+
|
|
35
|
+
## Methods
|
|
36
|
+
|
|
37
|
+
| 方法 | 参数 | 返回值 | 说明 |
|
|
38
|
+
| ------ | ------------------------------------ | ------ | ------------------------------------------------ |
|
|
39
|
+
| select | `(payload: InspectSelector) => void` | `void` | 向 iframe 内的预览代理发送选中指令,高亮指定元素 |
|
|
40
|
+
|
|
41
|
+
## Examples
|
|
42
|
+
|
|
43
|
+
### Basic
|
|
44
|
+
|
|
45
|
+
展示 Chat Preview 的基本用法,传入砖块配置后在 iframe 中渲染预览。
|
|
46
|
+
|
|
47
|
+
```tsx
|
|
48
|
+
<WrappedVisualBuilderChatPreview
|
|
49
|
+
storyboard={[
|
|
50
|
+
{
|
|
51
|
+
brick: "eo-button",
|
|
52
|
+
properties: {
|
|
53
|
+
textContent: "预览按钮",
|
|
54
|
+
type: "primary",
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
]}
|
|
58
|
+
/>
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### With Theme
|
|
62
|
+
|
|
63
|
+
指定预览主题和 UI 版本,使预览效果与目标环境匹配。
|
|
64
|
+
|
|
65
|
+
```tsx
|
|
66
|
+
<WrappedVisualBuilderChatPreview
|
|
67
|
+
theme="dark-v2"
|
|
68
|
+
uiVersion="8.2"
|
|
69
|
+
storyboard={[
|
|
70
|
+
{
|
|
71
|
+
brick: "eo-button",
|
|
72
|
+
properties: {
|
|
73
|
+
textContent: "暗色主题预览",
|
|
74
|
+
type: "primary",
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
]}
|
|
78
|
+
/>
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Inspect Mode
|
|
82
|
+
|
|
83
|
+
开启检查模式,鼠标悬停时显示元素轮廓,点击时触发激活目标变化事件。
|
|
84
|
+
|
|
85
|
+
```tsx
|
|
86
|
+
const ref = useRef<any>();
|
|
87
|
+
|
|
88
|
+
<WrappedVisualBuilderChatPreview
|
|
89
|
+
ref={ref}
|
|
90
|
+
inspecting={true}
|
|
91
|
+
storyboard={[
|
|
92
|
+
{
|
|
93
|
+
brick: "eo-button",
|
|
94
|
+
properties: {
|
|
95
|
+
textContent: "点击以检查",
|
|
96
|
+
type: "primary",
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
]}
|
|
100
|
+
onActiveTargetChange={(e) => console.log(e.detail)}
|
|
101
|
+
/>
|
|
102
|
+
<button onClick={() => ref.current?.select({ iid: "item:xxx" })}>
|
|
103
|
+
Select Element
|
|
104
|
+
</button>
|
|
105
|
+
```
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: visual-builder.contract-select
|
|
3
|
+
displayName: WrappedVisualBuilderContractSelect
|
|
4
|
+
description: 契约选择构件,提供契约名称和版本的联动选择,格式为 `contractName@namespace:version`,支持在表单中使用
|
|
5
|
+
category: ""
|
|
6
|
+
source: "@next-bricks/visual-builder"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# visual-builder.contract-select
|
|
10
|
+
|
|
11
|
+
> 契约选择构件,提供契约名称和版本的联动选择,格式为 `contractName@namespace:version`,支持在表单中使用
|
|
12
|
+
|
|
13
|
+
## Props
|
|
14
|
+
|
|
15
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
16
|
+
| -------- | ---------------------------------------------------------- | ---- | ------ | --------------------------------------------------------- |
|
|
17
|
+
| name | `string` | 否 | - | 表单字段名 |
|
|
18
|
+
| required | `boolean` | 否 | - | 是否为必填项 |
|
|
19
|
+
| label | `string` | 否 | - | 表单项标签 |
|
|
20
|
+
| value | `any` | 否 | - | 当前选中的契约值,格式为 `contractName@namespace:version` |
|
|
21
|
+
| suffix | `{ useBrick: UseSingleBrickConf \| UseSingleBrickConf[] }` | 否 | - | 输入框后缀内容,使用 useBrick 自定义渲染 |
|
|
22
|
+
|
|
23
|
+
## Events
|
|
24
|
+
|
|
25
|
+
| 事件 | detail | 说明 |
|
|
26
|
+
| ------ | ---------------------------------------------------------------------- | -------------------- |
|
|
27
|
+
| change | `string` — 选中的契约值字符串,格式为 `contractName@namespace:version` | 契约选择值变化时触发 |
|
|
28
|
+
|
|
29
|
+
## Examples
|
|
30
|
+
|
|
31
|
+
### Basic
|
|
32
|
+
|
|
33
|
+
展示契约选择构件的基本用法,搜索并选择契约名称和版本。
|
|
34
|
+
|
|
35
|
+
```yaml preview
|
|
36
|
+
brick: visual-builder.contract-select
|
|
37
|
+
properties:
|
|
38
|
+
label: 契约
|
|
39
|
+
name: contract
|
|
40
|
+
events:
|
|
41
|
+
change:
|
|
42
|
+
action: console.log
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Required Field
|
|
46
|
+
|
|
47
|
+
在表单中设置必填校验。
|
|
48
|
+
|
|
49
|
+
```yaml preview
|
|
50
|
+
brick: eo-form
|
|
51
|
+
events:
|
|
52
|
+
validate.success:
|
|
53
|
+
action: console.log
|
|
54
|
+
children:
|
|
55
|
+
- brick: visual-builder.contract-select
|
|
56
|
+
properties:
|
|
57
|
+
label: 契约
|
|
58
|
+
name: contract
|
|
59
|
+
required: true
|
|
60
|
+
- brick: eo-submit-buttons
|
|
61
|
+
properties:
|
|
62
|
+
submitText: 提交
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### With Value
|
|
66
|
+
|
|
67
|
+
设置初始契约值。
|
|
68
|
+
|
|
69
|
+
```yaml preview
|
|
70
|
+
brick: visual-builder.contract-select
|
|
71
|
+
properties:
|
|
72
|
+
label: 契约
|
|
73
|
+
name: contract
|
|
74
|
+
value: "easyops.api.cmdb.instance@instance.GetDetail:1.0.0"
|
|
75
|
+
events:
|
|
76
|
+
change:
|
|
77
|
+
action: console.log
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### With Suffix
|
|
81
|
+
|
|
82
|
+
在选择器后添加自定义后缀内容。
|
|
83
|
+
|
|
84
|
+
```yaml preview
|
|
85
|
+
brick: visual-builder.contract-select
|
|
86
|
+
properties:
|
|
87
|
+
label: 契约
|
|
88
|
+
name: contract
|
|
89
|
+
suffix:
|
|
90
|
+
useBrick:
|
|
91
|
+
brick: eo-button
|
|
92
|
+
properties:
|
|
93
|
+
icon:
|
|
94
|
+
lib: antd
|
|
95
|
+
icon: question-circle
|
|
96
|
+
type: text
|
|
97
|
+
```
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: visual-builder.contract-select
|
|
3
|
+
displayName: WrappedVisualBuilderContractSelect
|
|
4
|
+
description: 契约选择构件,提供契约名称和版本的联动选择,格式为 `contractName@namespace:version`,支持在表单中使用
|
|
5
|
+
category: ""
|
|
6
|
+
source: "@next-bricks/visual-builder"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# WrappedVisualBuilderContractSelect
|
|
10
|
+
|
|
11
|
+
> 契约选择构件,提供契约名称和版本的联动选择,格式为 `contractName@namespace:version`,支持在表单中使用
|
|
12
|
+
|
|
13
|
+
## 导入
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { WrappedVisualBuilderContractSelect } from "@easyops/wrapped-components";
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
22
|
+
| -------- | ---------------------------------------------------------- | ---- | ------ | --------------------------------------------------------- |
|
|
23
|
+
| name | `string` | 否 | - | 表单字段名 |
|
|
24
|
+
| required | `boolean` | 否 | - | 是否为必填项 |
|
|
25
|
+
| label | `string` | 否 | - | 表单项标签 |
|
|
26
|
+
| value | `any` | 否 | - | 当前选中的契约值,格式为 `contractName@namespace:version` |
|
|
27
|
+
| suffix | `{ useBrick: UseSingleBrickConf \| UseSingleBrickConf[] }` | 否 | - | 输入框后缀内容,使用 useBrick 自定义渲染 |
|
|
28
|
+
|
|
29
|
+
## Events
|
|
30
|
+
|
|
31
|
+
| 事件 | detail | 说明 |
|
|
32
|
+
| -------- | ---------------------------------------------------------------------- | -------------------- |
|
|
33
|
+
| onChange | `string` — 选中的契约值字符串,格式为 `contractName@namespace:version` | 契约选择值变化时触发 |
|
|
34
|
+
|
|
35
|
+
## Examples
|
|
36
|
+
|
|
37
|
+
### Basic
|
|
38
|
+
|
|
39
|
+
展示契约选择构件的基本用法,搜索并选择契约名称和版本。
|
|
40
|
+
|
|
41
|
+
```tsx
|
|
42
|
+
<WrappedVisualBuilderContractSelect
|
|
43
|
+
label="契约"
|
|
44
|
+
name="contract"
|
|
45
|
+
onChange={(e) => console.log(e.detail)}
|
|
46
|
+
/>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Required Field
|
|
50
|
+
|
|
51
|
+
在表单中设置必填校验。
|
|
52
|
+
|
|
53
|
+
```tsx
|
|
54
|
+
<WrappedEoForm onValidateSuccess={(e) => console.log(e.detail)}>
|
|
55
|
+
<WrappedVisualBuilderContractSelect
|
|
56
|
+
label="契约"
|
|
57
|
+
name="contract"
|
|
58
|
+
required={true}
|
|
59
|
+
/>
|
|
60
|
+
<WrappedEoSubmitButtons submitText="提交" />
|
|
61
|
+
</WrappedEoForm>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### With Value
|
|
65
|
+
|
|
66
|
+
设置初始契约值。
|
|
67
|
+
|
|
68
|
+
```tsx
|
|
69
|
+
<WrappedVisualBuilderContractSelect
|
|
70
|
+
label="契约"
|
|
71
|
+
name="contract"
|
|
72
|
+
value="easyops.api.cmdb.instance@instance.GetDetail:1.0.0"
|
|
73
|
+
onChange={(e) => console.log(e.detail)}
|
|
74
|
+
/>
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### With Suffix
|
|
78
|
+
|
|
79
|
+
在选择器后添加自定义后缀内容。
|
|
80
|
+
|
|
81
|
+
```tsx
|
|
82
|
+
<WrappedVisualBuilderContractSelect
|
|
83
|
+
label="契约"
|
|
84
|
+
name="contract"
|
|
85
|
+
suffix={{
|
|
86
|
+
useBrick: {
|
|
87
|
+
brick: "eo-button",
|
|
88
|
+
properties: {
|
|
89
|
+
icon: { lib: "antd", icon: "question-circle" },
|
|
90
|
+
type: "text",
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
}}
|
|
94
|
+
/>
|
|
95
|
+
```
|