@next-bricks/presentational 1.21.9 → 1.21.11
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 +1 -1
- package/dist/chunks/1614.5ce43617.js +2 -0
- package/dist/chunks/1614.5ce43617.js.map +1 -0
- package/dist/chunks/{1889.4559a6f7.js → 1889.01e1c38a.js} +2 -2
- package/dist/chunks/{1889.4559a6f7.js.map → 1889.01e1c38a.js.map} +1 -1
- package/dist/chunks/3171.7708784b.js +2 -0
- package/dist/chunks/3171.7708784b.js.map +1 -0
- package/dist/chunks/5399.2ab60504.js +2 -0
- package/dist/chunks/5399.2ab60504.js.map +1 -0
- package/dist/chunks/5552.f77213dd.js +2 -0
- package/dist/chunks/5552.f77213dd.js.map +1 -0
- package/dist/chunks/7116.05a51bac.js +2 -0
- package/dist/chunks/7116.05a51bac.js.map +1 -0
- package/dist/chunks/7455.0f5298ce.js +3 -0
- package/dist/chunks/7455.0f5298ce.js.LICENSE.txt +11 -0
- package/dist/chunks/7455.0f5298ce.js.map +1 -0
- package/dist/chunks/948.b8effe9f.js +3 -0
- package/dist/chunks/948.b8effe9f.js.map +1 -0
- package/dist/chunks/code-wrapper.40655769.js.map +1 -1
- package/dist/chunks/{eo-card-item.fbff6f7e.js → eo-card-item.f56c41e5.js} +3 -3
- package/dist/chunks/eo-card-item.f56c41e5.js.map +1 -0
- package/dist/chunks/eo-carousel-text.d8e8c2c9.js.map +1 -1
- package/dist/chunks/{eo-code-block.7efe5647.js → eo-code-block.a7162247.js} +2 -2
- package/dist/chunks/eo-code-block.a7162247.js.map +1 -0
- package/dist/chunks/eo-code-display.ffd79558.js.map +1 -1
- package/dist/chunks/eo-current-time.7cbef918.js.map +1 -1
- package/dist/chunks/{eo-descriptions.b8320ca9.js → eo-descriptions.1ab98c43.js} +3 -3
- package/dist/chunks/{eo-descriptions.b8320ca9.js.map → eo-descriptions.1ab98c43.js.map} +1 -1
- package/dist/chunks/eo-humanize-time.2397ce6e.js.map +1 -1
- package/dist/chunks/{eo-info-card-item.0d15cb28.js → eo-info-card-item.e6403b4d.js} +3 -3
- package/dist/chunks/eo-info-card-item.e6403b4d.js.map +1 -0
- package/dist/chunks/{eo-loading-step.834e0aa3.js → eo-loading-step.259d7985.js} +3 -3
- package/dist/chunks/{eo-loading-step.834e0aa3.js.map → eo-loading-step.259d7985.js.map} +1 -1
- package/dist/chunks/eo-pagination.16fd816a.js.map +1 -1
- package/dist/chunks/eo-statistics-card.410b5416.js.map +1 -1
- package/dist/chunks/{main.7a4b0b01.js → main.519bfa38.js} +2 -2
- package/dist/chunks/main.519bfa38.js.map +1 -0
- package/dist/examples.json +13 -13
- package/dist/{index.db5144bf.js → index.71ea98e1.js} +2 -2
- package/dist/index.71ea98e1.js.map +1 -0
- package/dist/manifest.json +49 -39
- package/dist/types.json +2 -2
- package/dist-types/card-item/index.d.ts +8 -4
- package/dist-types/carousel-text/index.d.ts +1 -1
- package/dist-types/code-block/index.d.ts +12 -3
- package/dist-types/code-display/index.d.ts +0 -1
- package/dist-types/code-wrapper/index.d.ts +7 -2
- package/dist-types/current-time/index.d.ts +1 -1
- package/dist-types/descriptions/index.d.ts +4 -3
- package/dist-types/humanize-time/index.d.ts +8 -8
- package/dist-types/info-card-item/index.d.ts +10 -9
- package/dist-types/loading-step/index.d.ts +8 -8
- package/dist-types/pagination/index.d.ts +7 -0
- package/dist-types/statistics-card/index.d.ts +2 -2
- package/docs/eo-alert.md +65 -1
- package/docs/eo-alert.react.md +127 -0
- package/docs/eo-card-item.md +179 -210
- package/docs/eo-card-item.react.md +578 -0
- package/docs/eo-carousel-text.md +49 -2
- package/docs/eo-carousel-text.react.md +62 -0
- package/docs/eo-code-block.md +135 -4
- package/docs/eo-code-block.react.md +146 -0
- package/docs/eo-code-display.md +97 -1
- package/docs/eo-code-display.react.md +116 -0
- package/docs/eo-code-wrapper.md +108 -0
- package/docs/eo-code-wrapper.react.md +100 -0
- package/docs/eo-current-time.md +40 -1
- package/docs/eo-current-time.react.md +53 -0
- package/docs/eo-descriptions.md +74 -4
- package/docs/eo-descriptions.react.md +329 -0
- package/docs/eo-divider.md +105 -17
- package/docs/eo-divider.react.md +129 -0
- package/docs/eo-humanize-time.md +89 -42
- package/docs/eo-humanize-time.react.md +109 -0
- package/docs/eo-info-card-item.md +129 -183
- package/docs/eo-info-card-item.react.md +188 -0
- package/docs/eo-loading-step.md +96 -1
- package/docs/eo-loading-step.react.md +102 -0
- package/docs/eo-pagination.md +74 -1
- package/docs/eo-pagination.react.md +93 -0
- package/docs/eo-statistics-card.md +175 -456
- package/docs/eo-statistics-card.react.md +376 -0
- package/package.json +2 -2
- package/dist/chunks/3171.3bb3ff80.js +0 -2
- package/dist/chunks/3171.3bb3ff80.js.map +0 -1
- package/dist/chunks/4837.3ae6253e.js +0 -2
- package/dist/chunks/4837.3ae6253e.js.map +0 -1
- package/dist/chunks/5045.b0f85f6b.js +0 -2
- package/dist/chunks/5045.b0f85f6b.js.map +0 -1
- package/dist/chunks/5399.23640b2d.js +0 -2
- package/dist/chunks/5399.23640b2d.js.map +0 -1
- package/dist/chunks/5552.5d29c532.js +0 -2
- package/dist/chunks/5552.5d29c532.js.map +0 -1
- package/dist/chunks/7218.4acefe69.js +0 -2
- package/dist/chunks/7218.4acefe69.js.map +0 -1
- package/dist/chunks/948.817a1ef0.js +0 -3
- package/dist/chunks/948.817a1ef0.js.map +0 -1
- package/dist/chunks/eo-card-item.fbff6f7e.js.map +0 -1
- package/dist/chunks/eo-code-block.7efe5647.js.map +0 -1
- package/dist/chunks/eo-info-card-item.0d15cb28.js.map +0 -1
- package/dist/chunks/main.7a4b0b01.js.map +0 -1
- package/dist/index.db5144bf.js.map +0 -1
- /package/dist/chunks/{948.817a1ef0.js.LICENSE.txt → 948.b8effe9f.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-card-item.fbff6f7e.js.LICENSE.txt → eo-card-item.f56c41e5.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-descriptions.b8320ca9.js.LICENSE.txt → eo-descriptions.1ab98c43.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-info-card-item.0d15cb28.js.LICENSE.txt → eo-info-card-item.e6403b4d.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-loading-step.834e0aa3.js.LICENSE.txt → eo-loading-step.259d7985.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
---
|
|
2
|
+
tagName: eo-statistics-card
|
|
3
|
+
displayName: WrappedEoStatisticsCard
|
|
4
|
+
description: 统计卡片
|
|
5
|
+
category: card-info
|
|
6
|
+
source: "@next-bricks/presentational"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# WrappedEoStatisticsCard
|
|
10
|
+
|
|
11
|
+
> 统计卡片
|
|
12
|
+
|
|
13
|
+
## 导入
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { WrappedEoStatisticsCard } from "@easyops/wrapped-components";
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| 属性 | 类型 | 必填 | 默认值 | 说明 |
|
|
22
|
+
| ------------------- | --------------------------------------------------------- | ---- | ---------- | ---------------------------------------------------------------------------------------------- |
|
|
23
|
+
| cardTitle | `string` | 否 | - | 卡片标题 |
|
|
24
|
+
| value | `string` | 否 | - | 统计值 |
|
|
25
|
+
| unit | `string` | 否 | - | 统计值单位,显示在值后方 |
|
|
26
|
+
| icon | `GeneralIconProps & { color?: string; bgColor?: string }` | 否 | - | 图标,支持 GeneralIconProps 的所有字段,额外支持 `color`(图标颜色)和 `bgColor`(图标背景色) |
|
|
27
|
+
| size | `"large" \| "medium" \| "small"` | 否 | `"medium"` | 卡片尺寸 |
|
|
28
|
+
| outline | `"border" \| "background" \| "none"` | 否 | `"border"` | 卡片轮廓样式,`border` 显示边框,`background` 显示背景色,`none` 无轮廓 |
|
|
29
|
+
| background | `string` | 否 | - | 卡片背景,支持任意 CSS background 值(颜色、渐变等) |
|
|
30
|
+
| descriptionPosition | `"bottom" \| "right"` | 否 | `"bottom"` | 描述信息(description slot)的位置,`bottom` 显示在值下方,`right` 显示在值右侧 |
|
|
31
|
+
| valueStyle | `React.CSSProperties` | 否 | - | 统计值的自定义样式 |
|
|
32
|
+
| interactable | `boolean` | 否 | - | 是否启用可互动样式(hover 高亮),适用于卡片整体可点击的场景 |
|
|
33
|
+
|
|
34
|
+
## Slots
|
|
35
|
+
|
|
36
|
+
| 插槽 | 说明 |
|
|
37
|
+
| ------------ | ---------------------------------------------------- |
|
|
38
|
+
| titlePrefix | 标题前缀,放置辅助信息 |
|
|
39
|
+
| titleSuffix | 标题后缀,放置辅助信息 |
|
|
40
|
+
| description | 描述信息,通常是对于统计值的描述 |
|
|
41
|
+
| basicContent | 卡片右侧内容区,适合放置迷你图表,常用于小卡片 |
|
|
42
|
+
| extraContent | 卡片下方内容区,适合放置图表,用于展示更多信息的场景 |
|
|
43
|
+
| operator | 右上角操作区 |
|
|
44
|
+
|
|
45
|
+
## Examples
|
|
46
|
+
|
|
47
|
+
### Basic
|
|
48
|
+
|
|
49
|
+
展示基础统计卡片,带图标和自定义值颜色,通过 `titleSuffix` 插槽添加提示。
|
|
50
|
+
|
|
51
|
+
```tsx preview
|
|
52
|
+
import { WrappedEoStatisticsCard } from "@easyops/wrapped-components";
|
|
53
|
+
import { WrappedEoTooltip } from "@easyops/wrapped-components";
|
|
54
|
+
import { WrappedEoIcon } from "@easyops/wrapped-components";
|
|
55
|
+
|
|
56
|
+
export default function App() {
|
|
57
|
+
return (
|
|
58
|
+
<WrappedEoStatisticsCard
|
|
59
|
+
cardTitle="安全评分"
|
|
60
|
+
value="93"
|
|
61
|
+
valueStyle={{ color: "var(--color-success)" }}
|
|
62
|
+
icon={{
|
|
63
|
+
lib: "easyops",
|
|
64
|
+
category: "monitor",
|
|
65
|
+
icon: "infra-monitor",
|
|
66
|
+
bgColor: "#E6F0FC",
|
|
67
|
+
color: "#3480EA",
|
|
68
|
+
}}
|
|
69
|
+
style={{ width: 300 }}
|
|
70
|
+
>
|
|
71
|
+
<WrappedEoTooltip
|
|
72
|
+
slot="titleSuffix"
|
|
73
|
+
content="安全评分是根据您的资产状态进行的评分"
|
|
74
|
+
trigger="hover"
|
|
75
|
+
placement="top-start"
|
|
76
|
+
>
|
|
77
|
+
<WrappedEoIcon
|
|
78
|
+
lib="antd"
|
|
79
|
+
icon="question-circle"
|
|
80
|
+
theme="outlined"
|
|
81
|
+
style={{ fontSize: 12, color: "var(--text-color-secondary)" }}
|
|
82
|
+
/>
|
|
83
|
+
</WrappedEoTooltip>
|
|
84
|
+
</WrappedEoStatisticsCard>
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Outline
|
|
90
|
+
|
|
91
|
+
通过 `outline` 属性控制卡片轮廓样式,支持 `border`、`background` 和 `none` 三种模式。
|
|
92
|
+
|
|
93
|
+
```tsx preview
|
|
94
|
+
import { WrappedEoStatisticsCard } from "@easyops/wrapped-components";
|
|
95
|
+
|
|
96
|
+
const icon = {
|
|
97
|
+
lib: "easyops",
|
|
98
|
+
category: "monitor",
|
|
99
|
+
icon: "infra-monitor",
|
|
100
|
+
bgColor: "#E6F0FC",
|
|
101
|
+
color: "#3480EA",
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
export default function App() {
|
|
105
|
+
return (
|
|
106
|
+
<div style={{ display: "flex", gap: 16 }}>
|
|
107
|
+
<WrappedEoStatisticsCard
|
|
108
|
+
cardTitle="事件总数"
|
|
109
|
+
value="1.2K"
|
|
110
|
+
unit="个"
|
|
111
|
+
outline="border"
|
|
112
|
+
icon={icon}
|
|
113
|
+
style={{ width: 300 }}
|
|
114
|
+
/>
|
|
115
|
+
<WrappedEoStatisticsCard
|
|
116
|
+
cardTitle="事件总数"
|
|
117
|
+
value="1.2K"
|
|
118
|
+
unit="个"
|
|
119
|
+
outline="background"
|
|
120
|
+
icon={icon}
|
|
121
|
+
style={{ width: 300 }}
|
|
122
|
+
/>
|
|
123
|
+
<WrappedEoStatisticsCard
|
|
124
|
+
cardTitle="事件总数"
|
|
125
|
+
value="1.2K"
|
|
126
|
+
unit="个"
|
|
127
|
+
outline="none"
|
|
128
|
+
icon={icon}
|
|
129
|
+
style={{ width: 300 }}
|
|
130
|
+
/>
|
|
131
|
+
</div>
|
|
132
|
+
);
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Size
|
|
137
|
+
|
|
138
|
+
通过 `size` 属性控制卡片尺寸,支持 `large`、`medium`(默认)和 `small` 三种规格。
|
|
139
|
+
|
|
140
|
+
```tsx preview
|
|
141
|
+
import { WrappedEoStatisticsCard } from "@easyops/wrapped-components";
|
|
142
|
+
|
|
143
|
+
const icon = {
|
|
144
|
+
lib: "easyops",
|
|
145
|
+
category: "monitor",
|
|
146
|
+
icon: "infra-monitor",
|
|
147
|
+
bgColor: "#E6F0FC",
|
|
148
|
+
color: "#3480EA",
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
export default function App() {
|
|
152
|
+
return (
|
|
153
|
+
<div style={{ display: "flex", gap: 16 }}>
|
|
154
|
+
<WrappedEoStatisticsCard
|
|
155
|
+
cardTitle="事件总数"
|
|
156
|
+
value="1.2K"
|
|
157
|
+
unit="个"
|
|
158
|
+
size="large"
|
|
159
|
+
icon={icon}
|
|
160
|
+
style={{ width: 300 }}
|
|
161
|
+
/>
|
|
162
|
+
<WrappedEoStatisticsCard
|
|
163
|
+
cardTitle="事件总数"
|
|
164
|
+
value="1.2K"
|
|
165
|
+
unit="个"
|
|
166
|
+
size="medium"
|
|
167
|
+
icon={icon}
|
|
168
|
+
style={{ width: 300 }}
|
|
169
|
+
/>
|
|
170
|
+
<WrappedEoStatisticsCard
|
|
171
|
+
cardTitle="事件总数"
|
|
172
|
+
value="1.2K"
|
|
173
|
+
unit="个"
|
|
174
|
+
size="small"
|
|
175
|
+
icon={icon}
|
|
176
|
+
style={{ width: 300 }}
|
|
177
|
+
/>
|
|
178
|
+
</div>
|
|
179
|
+
);
|
|
180
|
+
}
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Description Position
|
|
184
|
+
|
|
185
|
+
通过 `descriptionPosition` 控制描述内容的位置,`bottom` 显示在值下方,`right` 显示在值右侧。
|
|
186
|
+
|
|
187
|
+
```tsx preview
|
|
188
|
+
import { WrappedEoStatisticsCard } from "@easyops/wrapped-components";
|
|
189
|
+
import { WrappedEoIcon } from "@easyops/wrapped-components";
|
|
190
|
+
|
|
191
|
+
export default function App() {
|
|
192
|
+
return (
|
|
193
|
+
<div style={{ display: "flex", gap: 16 }}>
|
|
194
|
+
<WrappedEoStatisticsCard
|
|
195
|
+
cardTitle="事件响应率"
|
|
196
|
+
value="78.3%"
|
|
197
|
+
descriptionPosition="bottom"
|
|
198
|
+
style={{ width: 300 }}
|
|
199
|
+
>
|
|
200
|
+
<div slot="description">
|
|
201
|
+
<span>同比上周</span>
|
|
202
|
+
<span style={{ color: "var(--color-success)" }}>上升3.45%</span>
|
|
203
|
+
</div>
|
|
204
|
+
</WrappedEoStatisticsCard>
|
|
205
|
+
|
|
206
|
+
<WrappedEoStatisticsCard
|
|
207
|
+
cardTitle="事件响应数量"
|
|
208
|
+
value="4,089"
|
|
209
|
+
descriptionPosition="right"
|
|
210
|
+
style={{ width: 400 }}
|
|
211
|
+
>
|
|
212
|
+
<WrappedEoIcon
|
|
213
|
+
slot="titlePrefix"
|
|
214
|
+
lib="antd"
|
|
215
|
+
icon="check-circle"
|
|
216
|
+
theme="filled"
|
|
217
|
+
style={{ fontSize: 12, color: "var(--color-success)" }}
|
|
218
|
+
/>
|
|
219
|
+
<div slot="description">
|
|
220
|
+
<span>同比上周</span>
|
|
221
|
+
<span style={{ color: "var(--color-success)" }}>上升31.45%</span>
|
|
222
|
+
</div>
|
|
223
|
+
</WrappedEoStatisticsCard>
|
|
224
|
+
</div>
|
|
225
|
+
);
|
|
226
|
+
}
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### Background
|
|
230
|
+
|
|
231
|
+
通过 `background` 属性自定义卡片背景,支持颜色、渐变等 CSS 值。
|
|
232
|
+
|
|
233
|
+
```tsx preview
|
|
234
|
+
import { WrappedEoStatisticsCard } from "@easyops/wrapped-components";
|
|
235
|
+
|
|
236
|
+
export default function App() {
|
|
237
|
+
return (
|
|
238
|
+
<WrappedEoStatisticsCard
|
|
239
|
+
cardTitle="安全评分"
|
|
240
|
+
value="93"
|
|
241
|
+
valueStyle={{ color: "#fff" }}
|
|
242
|
+
background="linear-gradient(135deg, #3480EA 0%, #6EABF5 100%)"
|
|
243
|
+
style={{ width: 300 }}
|
|
244
|
+
/>
|
|
245
|
+
);
|
|
246
|
+
}
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
### With Extra Content
|
|
250
|
+
|
|
251
|
+
通过 `basicContent` 插槽在卡片右侧放置迷你图表,通过 `extraContent` 插槽在卡片下方放置完整图表,展示更丰富的数据信息。
|
|
252
|
+
|
|
253
|
+
```tsx preview
|
|
254
|
+
import { WrappedEoStatisticsCard } from "@easyops/wrapped-components";
|
|
255
|
+
|
|
256
|
+
export default function App() {
|
|
257
|
+
return (
|
|
258
|
+
<div style={{ display: "flex", flexDirection: "column", gap: 16 }}>
|
|
259
|
+
{/* basicContent slot: 卡片右侧迷你图表区 */}
|
|
260
|
+
<WrappedEoStatisticsCard
|
|
261
|
+
cardTitle="事件响应率"
|
|
262
|
+
value="78.3%"
|
|
263
|
+
style={{ width: 400 }}
|
|
264
|
+
>
|
|
265
|
+
<div slot="description">
|
|
266
|
+
<span>同比上周</span>
|
|
267
|
+
<span style={{ color: "var(--color-success)" }}>上升3.45%</span>
|
|
268
|
+
</div>
|
|
269
|
+
<div
|
|
270
|
+
slot="basicContent"
|
|
271
|
+
style={{
|
|
272
|
+
width: 120,
|
|
273
|
+
height: 40,
|
|
274
|
+
background: "var(--color-fill-bg-3)",
|
|
275
|
+
borderRadius: 4,
|
|
276
|
+
display: "flex",
|
|
277
|
+
alignItems: "center",
|
|
278
|
+
justifyContent: "center",
|
|
279
|
+
color: "var(--text-color-secondary)",
|
|
280
|
+
fontSize: 12,
|
|
281
|
+
}}
|
|
282
|
+
>
|
|
283
|
+
迷你图表区
|
|
284
|
+
</div>
|
|
285
|
+
</WrappedEoStatisticsCard>
|
|
286
|
+
|
|
287
|
+
{/* extraContent slot: 卡片下方图表区 */}
|
|
288
|
+
<WrappedEoStatisticsCard
|
|
289
|
+
cardTitle="事件响应数量"
|
|
290
|
+
value="4,089"
|
|
291
|
+
descriptionPosition="right"
|
|
292
|
+
style={{ width: 500 }}
|
|
293
|
+
>
|
|
294
|
+
<div slot="description">
|
|
295
|
+
<span>同比上周</span>
|
|
296
|
+
<span style={{ color: "var(--color-success)" }}>上升31.45%</span>
|
|
297
|
+
</div>
|
|
298
|
+
<div
|
|
299
|
+
slot="extraContent"
|
|
300
|
+
style={{
|
|
301
|
+
height: 60,
|
|
302
|
+
display: "flex",
|
|
303
|
+
alignItems: "center",
|
|
304
|
+
color: "var(--text-color-secondary)",
|
|
305
|
+
}}
|
|
306
|
+
>
|
|
307
|
+
(此处可放置完整图表)
|
|
308
|
+
</div>
|
|
309
|
+
</WrappedEoStatisticsCard>
|
|
310
|
+
</div>
|
|
311
|
+
);
|
|
312
|
+
}
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
### Interactable
|
|
316
|
+
|
|
317
|
+
通过 `interactable` 属性启用可互动样式,适用于卡片整体可点击跳转的场景;通过 `operator` 插槽在右上角放置操作菜单。
|
|
318
|
+
|
|
319
|
+
```tsx preview
|
|
320
|
+
import { WrappedEoStatisticsCard } from "@easyops/wrapped-components";
|
|
321
|
+
import { WrappedEoLink } from "@easyops/wrapped-components";
|
|
322
|
+
import { WrappedEoMiniActions } from "@easyops/wrapped-components";
|
|
323
|
+
|
|
324
|
+
const icon = {
|
|
325
|
+
lib: "easyops",
|
|
326
|
+
category: "monitor",
|
|
327
|
+
icon: "infra-monitor",
|
|
328
|
+
bgColor: "#E6F0FC",
|
|
329
|
+
color: "#3480EA",
|
|
330
|
+
};
|
|
331
|
+
|
|
332
|
+
export default function App() {
|
|
333
|
+
return (
|
|
334
|
+
<div style={{ display: "flex", gap: 16 }}>
|
|
335
|
+
<WrappedEoLink type="plain" url="/detail" target="_blank">
|
|
336
|
+
<WrappedEoStatisticsCard
|
|
337
|
+
interactable
|
|
338
|
+
outline="border"
|
|
339
|
+
cardTitle="安全评分"
|
|
340
|
+
value="93"
|
|
341
|
+
valueStyle={{ color: "var(--color-success)" }}
|
|
342
|
+
icon={icon}
|
|
343
|
+
style={{ width: 200 }}
|
|
344
|
+
/>
|
|
345
|
+
</WrappedEoLink>
|
|
346
|
+
|
|
347
|
+
<WrappedEoStatisticsCard
|
|
348
|
+
cardTitle="安全评分"
|
|
349
|
+
value="93"
|
|
350
|
+
valueStyle={{ color: "var(--color-success)" }}
|
|
351
|
+
icon={icon}
|
|
352
|
+
style={{ width: 300 }}
|
|
353
|
+
>
|
|
354
|
+
<WrappedEoMiniActions
|
|
355
|
+
slot="operator"
|
|
356
|
+
actions={[
|
|
357
|
+
{
|
|
358
|
+
icon: { lib: "antd", icon: "edit", theme: "outlined" },
|
|
359
|
+
text: "编辑",
|
|
360
|
+
isDropdown: true,
|
|
361
|
+
event: "edit",
|
|
362
|
+
},
|
|
363
|
+
{
|
|
364
|
+
icon: { lib: "antd", icon: "delete", theme: "outlined" },
|
|
365
|
+
text: "删除",
|
|
366
|
+
isDropdown: true,
|
|
367
|
+
disabled: true,
|
|
368
|
+
event: "delete",
|
|
369
|
+
},
|
|
370
|
+
]}
|
|
371
|
+
/>
|
|
372
|
+
</WrappedEoStatisticsCard>
|
|
373
|
+
</div>
|
|
374
|
+
);
|
|
375
|
+
}
|
|
376
|
+
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-bricks/presentational",
|
|
3
|
-
"version": "1.21.
|
|
3
|
+
"version": "1.21.11",
|
|
4
4
|
"homepage": "https://github.com/easyops-cn/next-advanced-bricks/tree/master/bricks/presentational",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -46,5 +46,5 @@
|
|
|
46
46
|
"@next-bricks/containers": "*",
|
|
47
47
|
"@next-bricks/icons": "*"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "bfc02e6cd7028ac3f92808235d9f3fcc0dfde393"
|
|
50
50
|
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_next_bricks_presentational=globalThis.webpackChunk_next_bricks_presentational||[]).push([[3171,5552],{75552:(n,e,t)=>{t.r(e),t.d(e,{i18n:()=>p,i18nText:()=>l,initializeI18n:()=>u});var i=t(75630),s=t(67177),r=t(848);let a=!1;const o=new Set;function u(n,e){if(a||(a=!0,s.i18n.use(r.default).init({fallbackLng:"zh",debug:!1,supportedLngs:["zh","en"],nonExplicitSupportedLngs:!0,interpolation:{escapeValue:!1},react:{useSuspense:!1},compatibilityJSON:"v3",resources:{}})),n&&e&&!o.has(n)){o.add(n);for(const[t,i]of Object.entries(e))s.i18n.addResourceBundle(t,n,i)}}var c=t(40410);function l(n){var e;if(!n)return;const t=null!==(e=s.i18n.language)&&void 0!==e?e:"zh-CN";if((0,c.hasOwnProperty)(n,t))return n[t];const i=t.split("-")[0];if(i!==t)return(0,c.hasOwnProperty)(n,i)?n[i]:void 0;const r=`${i}-`;for(const e of Object.keys(n))if(e.startsWith(r))return n[e]}const p=i.default}}]);
|
|
2
|
-
//# sourceMappingURL=3171.3bb3ff80.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/3171.3bb3ff80.js","mappings":"8PAEA,IAAIA,GAAc,EAClB,MAAMC,EAAwB,IAAIC,IAC3B,SAASC,EAAeC,EAAIC,GAwBjC,GAvBKL,IACHA,GAAc,EACd,EAAAM,KAICC,IAAmF,WAEnFC,KAAK,CACJC,YAAa,KACbC,OAAO,EACPC,cAAe,CAAC,KAAM,MACtBC,0BAA0B,EAC1BC,cAAe,CACbC,aAAa,GAEfC,MAAO,CACLC,aAAa,GAEfC,kBAAmB,KACnBC,UAAW,CAAC,KAGXd,GAAOC,IAAWJ,EAAsBkB,IAAIf,GAAjD,CAGAH,EAAsBmB,IAAIhB,GAC1B,IAAK,MAAOiB,EAAMH,KAAcI,OAAOC,QAAQlB,GAC7C,EAAAC,KAAKkB,kBAAkBH,EAAMjB,EAAIc,EAHnC,CAKF,C,eCjCO,SAASO,EAASC,GACvB,IAAIC,EACJ,IAAKD,EACH,OAEF,MAAME,EAAgD,QAApCD,EAAiB,EAAArB,KAAKsB,gBAAyC,IAAnBD,EAA4BA,EAAiB,QAE3G,IAAI,IAAAE,gBAAeH,EAAME,GACvB,OAAOF,EAAKE,GAGd,MAAME,EAAkBF,EAASG,MAAM,KAAK,GAC5C,GAAID,IAAoBF,EAGtB,OAAO,IAAAC,gBAAeH,EAAMI,GAAmBJ,EAAKI,QAAmBE,EAKzE,MAAMC,EAAS,GAAGH,KAClB,IAAK,MAAMI,KAAOZ,OAAOa,KAAKT,GAC5B,GAAIQ,EAAIE,WAAWH,GACjB,OAAOP,EAAKQ,EAGlB,CC3BO,MAAM5B,EAA6E,S","sources":["webpack:///../../node_modules/@next-core/i18n/dist/esm/init.js","webpack:///../../node_modules/@next-core/i18n/dist/esm/text.js","webpack:///../../node_modules/@next-core/i18n/dist/esm/index.js"],"sourcesContent":["import { i18n } from \"@next-core/i18n\";\nimport LanguageDetector from \"i18next-browser-languagedetector\";\nlet initialized = false;\nconst initializedNamespaces = new Set();\nexport function initializeI18n(NS, locales) {\n if (!initialized) {\n initialized = true;\n i18n\n // learn more: https://github.com/i18next/i18next-xhr-backend\n // .use(Backend)\n // learn more: https://github.com/i18next/i18next-browser-languageDetector\n .use(process.env.NODE_ENV === \"test\" ? LanguageDetector : /* istanbul ignore next */LanguageDetector.default)\n // for all options read: https://www.i18next.com/overview/configuration-options\n .init({\n fallbackLng: \"zh\",\n debug: process.env.NODE_ENV === \"development\",\n supportedLngs: [\"zh\", \"en\"],\n nonExplicitSupportedLngs: true,\n interpolation: {\n escapeValue: false // not needed for react as it escapes by default\n },\n react: {\n useSuspense: false\n },\n compatibilityJSON: \"v3\",\n resources: {}\n });\n }\n if (!NS || !locales || initializedNamespaces.has(NS)) {\n return;\n }\n initializedNamespaces.add(NS);\n for (const [lang, resources] of Object.entries(locales)) {\n i18n.addResourceBundle(lang, NS, resources);\n }\n}\n//# sourceMappingURL=init.js.map","import { i18n } from \"@next-core/i18n\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nexport function i18nText(data) {\n var _i18n$language;\n if (!data) {\n return;\n }\n const language = (_i18n$language = i18n.language) !== null && _i18n$language !== void 0 ? _i18n$language : \"zh-CN\";\n // First, make a perfect match.\n if (hasOwnProperty(data, language)) {\n return data[language];\n }\n // https://en.wikipedia.org/wiki/IETF_language_tag\n const primaryLanguage = language.split(\"-\")[0];\n if (primaryLanguage !== language) {\n // Then, match the primary language (which omits other subtags).\n // E.g., match `zh` if the current language is `zh-CN`.\n return hasOwnProperty(data, primaryLanguage) ? data[primaryLanguage] : undefined;\n }\n // At last, match the first key which starts with the primary language,\n // if the current language contains primary subtag only.\n // E.g., match `zh-CN` if the current language is `zh`.\n const prefix = `${primaryLanguage}-`;\n for (const key of Object.keys(data)) {\n if (key.startsWith(prefix)) {\n return data[key];\n }\n }\n}\n//# sourceMappingURL=text.js.map","import i18next from \"i18next\";\nexport const i18n = process.env.NODE_ENV === \"test\" ? i18next : /* istanbul ignore next */i18next.default;\nexport * from \"./init.js\";\nexport * from \"./text.js\";\n//# sourceMappingURL=index.js.map"],"names":["initialized","initializedNamespaces","Set","initializeI18n","NS","locales","i18n","use","init","fallbackLng","debug","supportedLngs","nonExplicitSupportedLngs","interpolation","escapeValue","react","useSuspense","compatibilityJSON","resources","has","add","lang","Object","entries","addResourceBundle","i18nText","data","_i18n$language","language","hasOwnProperty","primaryLanguage","split","undefined","prefix","key","keys","startsWith"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_next_bricks_presentational=globalThis.webpackChunk_next_bricks_presentational||[]).push([[4837,7218],{64837:(e,r,t)=>{t.r(r),t.d(r,{ReactUseBrick:()=>c,ReactUseMultipleBricks:()=>u,asyncWrapBrick:()=>k,useCurrentApp:()=>l,useCurrentTheme:()=>o,useLazyWrapBrick:()=>w,useNavConfig:()=>h,useProvider:()=>m,useRecentApps:()=>i,useRouteRender:()=>d});var n=t(18769),s=t(36305);let c=function(e){let{useBrick:r,data:t,errorBoundary:c,refCallback:u,ignoredCallback:a}=e;const[o,i]=(0,n.useState)(null),l=(0,n.useRef)(),[d,f]=(0,n.useState)(),p=(0,n.useRef)(0),g=(0,n.useMemo)((()=>{var e;return null===(e=s.__secret_internals.getRenderId)||void 0===e?void 0:e.call(s.__secret_internals)}),[]);(0,n.useEffect)((()=>{let e=!1;return async function(){try{const n=await s.__secret_internals.renderUseBrick(r,t,c);if(e)return;i(n),f(++p.current)}catch(n){!e&&function(e){var r;const t=null===(r=s.__secret_internals.getRenderId)||void 0===r?void 0:r.call(s.__secret_internals);return!e||!t||e===t}(g)&&(console.error("Render useBrick failed:",r,"with data:",t),(0,s.handleHttpError)(n))}}(),()=>{e=!0}}),[t,r,g,c]);const y=(0,n.useCallback)((e=>{e?l.current=s.__secret_internals.mountUseBrick(o,e):(s.__secret_internals.unmountUseBrick(o,l.current),l.current=void 0),null==u||u(e)}),[u,o]);if(!o)return null;const{tagName:m}=o;if(null===m)return null==a||a(),null;const v=m;return n.createElement(v,{key:d,ref:y})},u=function(e){let{useBrick:r,data:t,errorBoundary:s}=e;return Array.isArray(r)?n.createElement(n.Fragment,null,r.map(((e,r)=>n.createElement(c,{key:r,useBrick:e,data:t,errorBoundary:s})))):n.createElement(c,{useBrick:r,data:t,errorBoundary:s})};const a=(0,s.getV2RuntimeFromDll)();if(a){const{SingleBrickAsComponentFactory:e,BrickAsComponentFactory:r}=a;e&&r&&(c=e(n),u=r(n))}function o(){const[e,r]=(0,n.useState)(s.getCurrentTheme);return(0,n.useEffect)((()=>{const e=e=>{r(e.detail)};return window.addEventListener("theme.change",e),()=>{window.removeEventListener("theme.change",e)}}),[]),e}function i(){const[e,r]=n.useState((()=>(0,s.getRuntime)().getRecentApps()));return n.useEffect((()=>{const e=e=>{r(e.detail)};return window.addEventListener("app.change",e),()=>window.removeEventListener("app.change",e)}),[]),e}function l(){return i().currentApp}function d(){const[e,r]=n.useState(null);return n.useEffect((()=>{const e=e=>{r(e.detail)};return window.addEventListener("route.render",e),()=>window.removeEventListener("route.render",e)}),[]),e}const f={provider:"",customOptions:{onError:()=>{},transform:(e,r)=>r,data:void 0,loading:!1,suspense:!1,cache:!0},dependencies:void 0},p=Object.entries(f).reduce(((e,r)=>{let[t,n]=r;return"[object Object]"===Object.prototype.toString.call(n)?{...e,...n}:{...e,[t]:n}}),{});var g=t(20563);const y=new Map;function m(){const{provider:e,customOptions:r,dependencies:t,requestInit:c}=function(e,r,t){const s=(0,n.useMemo)((()=>"string"==typeof e?e:f.provider),[e,r]),c=(0,n.useMemo)((()=>{let t={};return(0,g.isObject)(e)?t=e:(0,g.isObject)(r)&&(t=r),{...p,...t}}),[e,r]),u=(0,n.useMemo)((()=>{const e=[...Object.keys(f),...Object.keys(f.customOptions)],{args:r=null,...t}=Object.keys(c).reduce(((r,t)=>(e.includes(t)||(r[t]=c[t]),r)),{});return{options:{...t},args:r}}),[c]),a=(0,n.useMemo)((()=>Array.isArray(r)?r:Array.isArray(t)?t:p.dependencies),[r,t]),o=c.loading||Array.isArray(a);return{provider:s,customOptions:(0,n.useMemo)((()=>({...Object.keys(f.customOptions).reduce(((e,r)=>(e[r]=c[r],e)),{}),loading:o})),[c]),requestInit:u,dependencies:a}}(...arguments),{onError:u,transform:a,suspense:o,cache:i,...l}=r,[d,m]=(0,n.useState)(l.loading),v=(0,n.useRef)("pending"),k=(0,n.useRef)(),h=(0,n.useRef)(!1),w=(0,n.useRef)(),_=(0,n.useRef)(),b=(0,n.useRef)(l.data),B=(0,n.useReducer)((()=>({})),[])[1],E=(0,n.useCallback)((async(e,r)=>{try{w.current=void 0,o||m(!0);const t=await async function(e,r,t){let n;const c=function(e){const r=e=>Object.keys(e).sort().map((r=>({[r]:e[r]})));for(var t=arguments.length,n=new Array(t>1?t-1:0),s=1;s<t;s++)n[s-1]=arguments[s];try{const t="object"!=typeof(c=n)||null===c||Array.isArray(c)?n.map((e=>function(e){return"string"==typeof e}(e)?e:r(e))):r(n);return JSON.stringify({provider:e,args:t})}catch(r){return JSON.stringify({provider:e,args:n})}var c}(e,...t);return!r&&y.has(c)&&y.delete(c),y.has(c)?n=y.get(c):(n=(0,s.fetchByProvider)(e,t,{cache:r?"default":"reload"}),r&&y.set(c,n)),n}(e,i,r);_.current=t,b.current=a(b.current,t)}catch(e){w.current=e,b.current=void 0}return o||m(!1),w.current&&u(w.current),b.current}),[e,r,t,c,o,a,l.data,u,i]),O=(0,n.useCallback)((async(r,t)=>{let n=e,s=[];return(0,g.isString)(r)&&(n=r),(0,g.isObject)(r)?s=r:(0,g.isObject)(t)&&(s=t),o?(async()=>(k.current=E(n,s).then((e=>(v.current="success",e)),(e=>(v.current="error",e.current=e,e))),B(),await k.current))():E(n,s)}),[E]),R=(0,n.useMemo)((()=>Object.defineProperties({query:O},{loading:{get:()=>d},data:{get:()=>b.current},error:{get:()=>w.current}})),[O]);if((0,n.useEffect)((()=>(h.current=!0,Array.isArray(t)&&e&&R.query(e,c.args),()=>h.current=!1)),t),o&&k.current)switch(v.current){case"pending":throw k.current;case"error":throw w.current}return Object.assign([R,_.current,d,w.current],{request:R,...R,response:_.current,data:b.current,loading:d,error:w.current})}var v=t(30981);async function k(e,r){return await s.__secret_internals.loadBricks([e]),(0,v.wrapBrick)(e,r)}function h(){const[e,r]=(0,n.useState)((()=>(0,s.getRuntime)().getNavConfig()));return(0,n.useEffect)((()=>{const e=e=>{r(e.detail)};return window.addEventListener("navConfig.change",e),()=>window.removeEventListener("navConfig.change",e)}),[]),e}function w(e,r){return(0,n.useMemo)((()=>null!=e?(0,n.lazy)((async()=>({default:await k(e,r)}))):null),[e,r])}}}]);
|
|
2
|
-
//# sourceMappingURL=4837.3ae6253e.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/4837.3ae6253e.js","mappings":"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","sources":["webpack:///../../node_modules/@next-core/react-runtime/dist/esm/ReactUseBrick.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useCurrentTheme.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useRecentApps.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useCurrentApp.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useRouteRender.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useProvider/useProviderArgsDefaults.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useProvider/fetch.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useProvider/useProvider.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useProvider/useProviderArgs.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/asyncWrapBrick.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useNavConfig.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useLazyWrapBrick.js"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { __secret_internals, handleHttpError, getV2RuntimeFromDll } from \"@next-core/runtime\";\n// Note: always synchronize code in LegacyUseBrick:\n// `bricks/v2-adapter/src/data-providers/legacy-brick-kit/getLegacyUseBrick.ts`\nlet ReactUseBrick = function ReactUseBrick(_ref) {\n let {\n useBrick,\n data,\n errorBoundary,\n refCallback,\n ignoredCallback\n } = _ref;\n const [renderResult, setRenderResult] = useState(null);\n const mountResult = useRef();\n const [renderKey, setRenderKey] = useState();\n const IdCounterRef = useRef(0);\n const initialRenderId = useMemo(() => {\n var _secret_internals$ge;\n return (_secret_internals$ge = __secret_internals.getRenderId) === null || _secret_internals$ge === void 0 ? void 0 : _secret_internals$ge.call(__secret_internals);\n }, []);\n useEffect(() => {\n let ignore = false;\n async function init() {\n try {\n const newRender = await __secret_internals.renderUseBrick(useBrick, data, errorBoundary);\n if (ignore) {\n return;\n }\n setRenderResult(newRender);\n setRenderKey(getUniqueId(IdCounterRef));\n } catch (error) {\n if (!ignore && isTheSameRender(initialRenderId)) {\n // eslint-disable-next-line no-console\n console.error(\"Render useBrick failed:\", useBrick, \"with data:\", data);\n handleHttpError(error);\n }\n }\n }\n init();\n return () => {\n ignore = true;\n };\n }, [data, useBrick, initialRenderId, errorBoundary]);\n const _refCallback = useCallback(element => {\n if (element) {\n mountResult.current = __secret_internals.mountUseBrick(renderResult, element);\n } else {\n __secret_internals.unmountUseBrick(renderResult, mountResult.current);\n mountResult.current = undefined;\n }\n refCallback === null || refCallback === void 0 || refCallback(element);\n }, [refCallback, renderResult]);\n if (!renderResult) {\n // Fallback when loading/\n return null;\n // return <span>🌀 Loading...</span>;\n }\n const {\n tagName\n } = renderResult;\n if (tagName === null) {\n ignoredCallback === null || ignoredCallback === void 0 || ignoredCallback();\n return null;\n }\n const WebComponent = tagName;\n return /*#__PURE__*/React.createElement(WebComponent, {\n key: renderKey,\n ref: _refCallback\n });\n};\nfunction getUniqueId(ref) {\n return ++ref.current;\n}\nfunction isTheSameRender(initialRenderId) {\n var _secret_internals$ge2;\n const newRenderId = (_secret_internals$ge2 = __secret_internals.getRenderId) === null || _secret_internals$ge2 === void 0 ? void 0 : _secret_internals$ge2.call(__secret_internals);\n return !initialRenderId || !newRenderId || initialRenderId === newRenderId;\n}\nlet ReactUseMultipleBricks = function ReactUseMultipleBricks(_ref2) {\n let {\n useBrick,\n data,\n errorBoundary\n } = _ref2;\n if (Array.isArray(useBrick)) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, useBrick.map((item, index) => /*#__PURE__*/React.createElement(ReactUseBrick, {\n key: index,\n useBrick: item,\n data: data,\n errorBoundary: errorBoundary\n })));\n }\n return /*#__PURE__*/React.createElement(ReactUseBrick, {\n useBrick: useBrick,\n data: data,\n errorBoundary: errorBoundary\n });\n};\n\n// Make v3 bricks compatible with Brick Next v2.\n// istanbul ignore next\nconst v2Kit = getV2RuntimeFromDll();\n// istanbul ignore next\nif (v2Kit) {\n const {\n SingleBrickAsComponentFactory,\n BrickAsComponentFactory\n } = v2Kit;\n if (SingleBrickAsComponentFactory && BrickAsComponentFactory) {\n ReactUseBrick = SingleBrickAsComponentFactory(React);\n ReactUseMultipleBricks = BrickAsComponentFactory(React);\n }\n}\nexport { ReactUseBrick, ReactUseMultipleBricks };\n//# sourceMappingURL=ReactUseBrick.js.map","import { useEffect, useState } from \"react\";\nimport { getCurrentTheme } from \"@next-core/runtime\";\nexport function useCurrentTheme() {\n const [currentTheme, setCurrentTheme] = useState(getCurrentTheme);\n useEffect(() => {\n const listenToThemeChange = event => {\n setCurrentTheme(event.detail);\n };\n window.addEventListener(\"theme.change\", listenToThemeChange);\n return () => {\n window.removeEventListener(\"theme.change\", listenToThemeChange);\n };\n }, []);\n return currentTheme;\n}\n//# sourceMappingURL=useCurrentTheme.js.map","import React from \"react\";\nimport { getRuntime } from \"@next-core/runtime\";\nexport function useRecentApps() {\n const [recentApps, setRecentApps] = React.useState(() => getRuntime().getRecentApps());\n React.useEffect(() => {\n const listener = event => {\n setRecentApps(event.detail);\n };\n window.addEventListener(\"app.change\", listener);\n return () => window.removeEventListener(\"app.change\", listener);\n }, []);\n return recentApps;\n}\n//# sourceMappingURL=useRecentApps.js.map","import { useRecentApps } from \"./useRecentApps.js\";\n\n/**\n * 获取当前所在微应用信息的 React hooks。\n *\n * @example\n *\n * ```tsx\n * function MyReactComponent() {\n * const app = useCurrentApp();\n * return <div>{app.id}</div>;\n * }\n * ```\n *\n * @returns 当前所在微应用的信息。\n */\nexport function useCurrentApp() {\n return useRecentApps().currentApp;\n}\n//# sourceMappingURL=useCurrentApp.js.map","import React from \"react\";\nexport function useRouteRender() {\n const [routeRender, setRouteRender] = React.useState(null);\n React.useEffect(() => {\n const listener = event => {\n setRouteRender(event.detail);\n };\n window.addEventListener(\"route.render\", listener);\n return () => window.removeEventListener(\"route.render\", listener);\n }, []);\n return routeRender;\n}\n//# sourceMappingURL=useRouteRender.js.map","export const useProviderArgsDefaults = {\n provider: \"\",\n customOptions: {\n onError: () => {\n /* Do nothing.. */\n },\n transform: (oldData, newData) => newData,\n data: undefined,\n loading: false,\n suspense: false,\n cache: true\n },\n dependencies: undefined\n};\nexport default Object.entries(useProviderArgsDefaults).reduce((acc, _ref) => {\n let [key, value] = _ref;\n if (Object.prototype.toString.call(value) === \"[object Object]\") return {\n ...acc,\n ...value\n };\n return {\n ...acc,\n [key]: value\n };\n}, {});\n//# sourceMappingURL=useProviderArgsDefaults.js.map","import { fetchByProvider } from \"@next-core/runtime\";\nconst cacheMap = new Map();\nfunction isObj(v) {\n return typeof v === \"object\" && v !== null && !Array.isArray(v);\n}\nfunction isString(v) {\n return typeof v === \"string\";\n}\nfunction buildSortedCacheKey(provider) {\n const sortObj = obj => Object.keys(obj).sort().map(k => ({\n [k]: obj[k]\n }));\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n try {\n const sortedArgs = isObj(args) ? sortObj(args) : args.map(arg => isString(arg) ? arg : sortObj(arg));\n return JSON.stringify({\n provider,\n args: sortedArgs\n });\n } catch (e) {\n return JSON.stringify({\n provider,\n args\n });\n }\n}\nexport default async function fetch(provider, cache, args) {\n let promise;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const cacheKey = buildSortedCacheKey(provider, ...args);\n !cache && cacheMap.has(cacheKey) && cacheMap.delete(cacheKey);\n if (cacheMap.has(cacheKey)) {\n promise = cacheMap.get(cacheKey);\n } else {\n promise = (() => {\n return fetchByProvider(provider, args, {\n cache: cache ? \"default\" : \"reload\"\n });\n })();\n cache && cacheMap.set(cacheKey, promise);\n }\n return promise;\n}\n//# sourceMappingURL=fetch.js.map","import { useCallback, useEffect, useMemo, useReducer, useRef, useState } from \"react\";\nimport useProviderArgs from \"./useProviderArgs.js\";\nimport { isObject, isString } from \"lodash\";\nimport fetch from \"./fetch.js\";\nexport function useProvider() {\n const {\n provider,\n customOptions,\n dependencies,\n requestInit\n } = useProviderArgs(...arguments);\n const {\n onError,\n transform,\n suspense,\n cache,\n ...defaults\n } = customOptions;\n const [loading, setLoading] = useState(defaults.loading);\n const suspenseStatus = useRef(\"pending\");\n const suspender = useRef();\n const mounted = useRef(false);\n const error = useRef();\n const response = useRef();\n const data = useRef(defaults.data);\n const forceUpdate = useReducer(() => ({}), [])[1];\n const doFetch = useCallback(async (provider, providerArgs) => {\n try {\n error.current = undefined;\n if (!suspense) setLoading(true);\n const newRes = await fetch(provider, cache, providerArgs);\n response.current = newRes;\n data.current = transform(data.current, newRes);\n } catch (e) {\n error.current = e;\n data.current = undefined;\n }\n if (!suspense) setLoading(false);\n if (error.current) onError(error.current);\n return data.current;\n }, [provider, customOptions, dependencies, requestInit, suspense, transform, defaults.data, onError, cache]);\n const makeFetch = useCallback(async (providerOrBody, args) => {\n let providerStr = provider;\n let providerArgs = [];\n if (isString(providerOrBody)) {\n providerStr = providerOrBody;\n }\n if (isObject(providerOrBody)) {\n providerArgs = providerOrBody;\n } else if (isObject(args)) {\n providerArgs = args;\n }\n if (suspense) {\n return (async () => {\n suspender.current = doFetch(providerStr, providerArgs).then(newData => {\n suspenseStatus.current = \"success\";\n return newData;\n }, error => {\n /* istanbul ignore next */\n suspenseStatus.current = \"error\";\n error.current = error;\n return error;\n });\n forceUpdate();\n return await suspender.current;\n })();\n }\n return doFetch(providerStr, providerArgs);\n }, [doFetch]);\n const request = useMemo(() => Object.defineProperties({\n query: makeFetch\n }, {\n loading: {\n get() {\n return loading;\n }\n },\n data: {\n get() {\n return data.current;\n }\n },\n error: {\n get() {\n return error.current;\n }\n }\n }), [makeFetch]);\n\n // onMount/onUpdate\n useEffect(() => {\n mounted.current = true;\n if (Array.isArray(dependencies) && provider) {\n request.query(provider, requestInit.args);\n }\n return () => mounted.current = false;\n }, dependencies);\n if (suspense && suspender.current) {\n switch (suspenseStatus.current) {\n case \"pending\":\n throw suspender.current;\n /* istanbul ignore next */\n case \"error\":\n throw error.current;\n }\n }\n return Object.assign([request, response.current, loading, error.current], {\n request,\n ...request,\n response: response.current,\n data: data.current,\n loading,\n error: error.current\n });\n}\n//# sourceMappingURL=useProvider.js.map","import { useMemo } from \"react\";\nimport defaults, { useProviderArgsDefaults } from \"./useProviderArgsDefaults.js\";\nimport { isObject } from \"lodash\";\nexport default function useProviderArgs(providerOrParamsOrGlobalOptions, globalOptionsOrDeps, deps) {\n const provider = useMemo(() => {\n if (typeof providerOrParamsOrGlobalOptions === \"string\") {\n return providerOrParamsOrGlobalOptions;\n }\n return useProviderArgsDefaults.provider;\n }, [providerOrParamsOrGlobalOptions, globalOptionsOrDeps]);\n const options = useMemo(() => {\n let localOptions = {};\n if (isObject(providerOrParamsOrGlobalOptions)) {\n localOptions = providerOrParamsOrGlobalOptions;\n } else if (isObject(globalOptionsOrDeps)) {\n localOptions = globalOptionsOrDeps;\n }\n return {\n ...defaults,\n ...localOptions\n };\n }, [providerOrParamsOrGlobalOptions, globalOptionsOrDeps]);\n const requestInit = useMemo(() => {\n const customOptionKeys = [...Object.keys(useProviderArgsDefaults), ...Object.keys(useProviderArgsDefaults.customOptions)];\n const {\n args = null,\n ...restOptions\n } = Object.keys(options).reduce((acc, key) => {\n if (!customOptionKeys.includes(key)) acc[key] = options[key];\n return acc;\n }, {});\n return {\n options: {\n ...restOptions\n },\n args\n };\n }, [options]);\n const dependencies = useMemo(() => {\n if (Array.isArray(globalOptionsOrDeps)) return globalOptionsOrDeps;\n if (Array.isArray(deps)) return deps;\n return defaults.dependencies;\n }, [globalOptionsOrDeps, deps]);\n const loading = options.loading || Array.isArray(dependencies);\n const customOptions = useMemo(() => {\n const customOptionKeys = Object.keys(useProviderArgsDefaults.customOptions);\n const customOptions = customOptionKeys.reduce((opts, key) => {\n opts[key] = options[key];\n return opts;\n }, {});\n return {\n ...customOptions,\n loading\n };\n }, [options]);\n return {\n provider,\n customOptions,\n requestInit,\n dependencies\n };\n}\n//# sourceMappingURL=useProviderArgs.js.map","import { __secret_internals } from \"@next-core/runtime\";\nimport { wrapBrick } from \"@next-core/react-element\";\n\n/**\n * 使用异步加载的方式包装一个构件,可用于按条件渲染的构件依赖。\n *\n * 例如提供复杂弹层内容的按钮构件,其内容需要使用到一些大型构件,那么这些依赖可以使用 asyncWrapBrick,\n * 这样只有在需要时才会加载这些依赖的构件。\n */\n\n/**\n * 使用异步加载的方式包装一个构件,可用于按条件渲染的构件依赖。\n *\n * 例如提供复杂弹层内容的按钮构件,其内容需要使用到一些大型构件,那么这些依赖可以使用 asyncWrapBrick,\n * 这样只有在需要时才会加载这些依赖的构件。\n */\n\nexport async function asyncWrapBrick(brickName, eventsMapping) {\n await __secret_internals.loadBricks([brickName]);\n return wrapBrick(brickName, eventsMapping);\n}\n//# sourceMappingURL=asyncWrapBrick.js.map","import { useEffect, useState } from \"react\";\nimport { getRuntime } from \"@next-core/runtime\";\nexport function useNavConfig() {\n const [navConfig, setNavConfig] = useState(() => getRuntime().getNavConfig());\n useEffect(() => {\n const listener = event => {\n setNavConfig(event.detail);\n };\n window.addEventListener(\"navConfig.change\", listener);\n return () => window.removeEventListener(\"navConfig.change\", listener);\n }, []);\n return navConfig;\n}\n//# sourceMappingURL=useNavConfig.js.map","import { lazy, useMemo } from \"react\";\nimport { asyncWrapBrick } from \"./asyncWrapBrick.js\";\n\n/**\n * 使用 `React.lazy` 包装一个异步加载的构件。\n *\n * ```jsx\n * const DepComponent = useLazyWrapBrick(\"async-dep\");\n * return (\n * <Suspense fallback=\"Loading...\">\n * <DepComponent {...props} />\n * </Suspense>\n * );\n * ```\n */\n\n/**\n * 使用 `React.lazy` 包装一个异步加载的构件。\n *\n * ```jsx\n * const DepComponent = useLazyWrapBrick(\"async-dep\");\n * return (\n * <Suspense fallback=\"Loading...\">\n * <DepComponent {...props} />\n * </Suspense>\n * );\n * ```\n */\n\n/**\n * 使用 `React.lazy` 包装一个异步加载的构件。\n *\n * ```jsx\n * const DepComponent = useLazyWrapBrick(\"async-dep\");\n * return (\n * <Suspense fallback=\"Loading...\">\n * <DepComponent {...props} />\n * </Suspense>\n * );\n * ```\n */\n\n/**\n * 使用 `React.lazy` 包装一个异步加载的构件。\n *\n * ```jsx\n * const DepComponent = useLazyWrapBrick(\"async-dep\");\n * return (\n * <Suspense fallback=\"Loading...\">\n * <DepComponent {...props} />\n * </Suspense>\n * );\n * ```\n */\n\nexport function useLazyWrapBrick(brickName, eventsMapping) {\n return useMemo(() => {\n if (brickName != null) {\n return /*#__PURE__*/lazy(async () => ({\n default: await asyncWrapBrick(brickName, eventsMapping)\n }));\n }\n return null;\n }, [brickName, eventsMapping]);\n}\n//# sourceMappingURL=useLazyWrapBrick.js.map"],"names":["ReactUseBrick","_ref","useBrick","data","errorBoundary","refCallback","ignoredCallback","renderResult","setRenderResult","useState","mountResult","useRef","renderKey","setRenderKey","IdCounterRef","initialRenderId","useMemo","_secret_internals$ge","__secret_internals","getRenderId","call","useEffect","ignore","async","newRender","renderUseBrick","current","error","_secret_internals$ge2","newRenderId","isTheSameRender","console","handleHttpError","init","_refCallback","useCallback","element","mountUseBrick","unmountUseBrick","undefined","tagName","WebComponent","key","ref","ReactUseMultipleBricks","_ref2","Array","isArray","map","item","index","v2Kit","getV2RuntimeFromDll","SingleBrickAsComponentFactory","BrickAsComponentFactory","useCurrentTheme","currentTheme","setCurrentTheme","getCurrentTheme","listenToThemeChange","event","detail","window","addEventListener","removeEventListener","useRecentApps","recentApps","setRecentApps","getRuntime","getRecentApps","listener","useCurrentApp","currentApp","useRouteRender","routeRender","setRouteRender","useProviderArgsDefaults","provider","customOptions","onError","transform","oldData","newData","loading","suspense","cache","dependencies","Object","entries","reduce","acc","value","prototype","toString","cacheMap","Map","useProvider","requestInit","providerOrParamsOrGlobalOptions","globalOptionsOrDeps","deps","options","localOptions","isObject","customOptionKeys","keys","args","restOptions","includes","opts","useProviderArgs","arguments","defaults","setLoading","suspenseStatus","suspender","mounted","response","forceUpdate","useReducer","doFetch","providerArgs","newRes","promise","cacheKey","sortObj","obj","sort","k","_len","length","_key","sortedArgs","v","arg","isString","JSON","stringify","e","buildSortedCacheKey","has","delete","get","fetchByProvider","set","fetch","makeFetch","providerOrBody","providerStr","then","request","defineProperties","query","assign","asyncWrapBrick","brickName","eventsMapping","loadBricks","wrapBrick","useNavConfig","navConfig","setNavConfig","getNavConfig","useLazyWrapBrick","lazy","default"],"sourceRoot":""}
|