@easy-editor/materials-dashboard-radar-chart 0.0.3 → 0.0.4

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/src/configure.ts CHANGED
@@ -1,247 +1,135 @@
1
- /**
2
- * Radar Chart Configure
3
- * 雷达图组件配置
4
- */
5
-
6
- import type { Configure } from '@easy-editor/core'
7
-
8
- const configure: Configure = {
9
- props: [
10
- {
11
- type: 'group',
12
- title: '属性',
13
- setter: 'TabSetter',
14
- items: [
15
- {
16
- type: 'group',
17
- key: 'config',
18
- title: '配置',
19
- setter: {
20
- componentName: 'CollapseSetter',
21
- props: {
22
- icon: false,
23
- },
24
- },
25
- items: [
26
- // 基础配置
27
- {
28
- name: 'id',
29
- title: 'ID',
30
- setter: 'NodeIdSetter',
31
- extraProps: {
32
- // @ts-expect-error label is not a valid extra prop
33
- label: false,
34
- },
35
- },
36
- {
37
- name: 'title',
38
- title: '标题',
39
- setter: 'StringSetter',
40
- extraProps: {
41
- getValue(target) {
42
- return target.getExtraPropValue('title')
43
- },
44
- setValue(target, value) {
45
- target.setExtraPropValue('title', value)
46
- },
47
- },
48
- },
49
- {
50
- type: 'group',
51
- title: '基础属性',
52
- setter: {
53
- componentName: 'CollapseSetter',
54
- props: {
55
- icon: false,
56
- },
57
- },
58
- items: [
59
- {
60
- name: 'rect',
61
- title: '位置尺寸',
62
- setter: 'RectSetter',
63
- extraProps: {
64
- getValue(target) {
65
- return target.getExtraPropValue('$dashboard.rect')
66
- },
67
- setValue(target, value) {
68
- target.setExtraPropValue('$dashboard.rect', value)
69
- },
70
- },
71
- },
72
- ],
73
- },
74
- // 组件配置
75
- {
76
- type: 'group',
77
- title: '数据',
78
- setter: {
79
- componentName: 'CollapseSetter',
80
- props: {
81
- icon: false,
82
- },
83
- },
84
- items: [
85
- {
86
- name: 'data',
87
- title: '数据',
88
- setter: 'JsonSetter',
89
- },
90
- {
91
- name: 'dimensionKey',
92
- title: '维度字段',
93
- setter: 'StringSetter',
94
- extraProps: {
95
- defaultValue: 'dimension',
96
- },
97
- },
98
- {
99
- name: 'series',
100
- title: '系列',
101
- setter: 'JsonSetter',
102
- },
103
- ],
104
- },
105
- {
106
- type: 'group',
107
- title: '数值格式',
108
- setter: {
109
- componentName: 'CollapseSetter',
110
- props: {
111
- icon: false,
112
- },
113
- },
114
- items: [
115
- {
116
- name: 'valuePrefix',
117
- title: '前缀',
118
- setter: 'StringSetter',
119
- },
120
- {
121
- name: 'valueSuffix',
122
- title: '后缀',
123
- setter: 'StringSetter',
124
- },
125
- {
126
- name: 'valueDecimals',
127
- title: '小数位数',
128
- setter: {
129
- componentName: 'NumberSetter',
130
- props: {
131
- suffix: '',
132
- },
133
- },
134
- extraProps: {
135
- defaultValue: 0,
136
- },
137
- },
138
- ],
139
- },
140
- {
141
- type: 'group',
142
- title: '样式',
143
- setter: {
144
- componentName: 'CollapseSetter',
145
- props: {
146
- icon: false,
147
- },
148
- },
149
- items: [
150
- {
151
- name: 'showGrid',
152
- title: '显示网格',
153
- setter: 'SwitchSetter',
154
- extraProps: {
155
- defaultValue: true,
156
- },
157
- },
158
- {
159
- name: 'fillOpacity',
160
- title: '填充透明度',
161
- setter: {
162
- componentName: 'SliderSetter',
163
- props: {
164
- min: 0,
165
- max: 1,
166
- step: 0.1,
167
- },
168
- },
169
- extraProps: {
170
- defaultValue: 0.3,
171
- },
172
- },
173
- {
174
- name: 'showLegend',
175
- title: '显示图例',
176
- setter: 'SwitchSetter',
177
- extraProps: {
178
- defaultValue: true,
179
- },
180
- },
181
- {
182
- name: 'legendPosition',
183
- title: '图例位置',
184
- setter: {
185
- componentName: 'SelectSetter',
186
- props: {
187
- options: [
188
- { label: '顶部', value: 'top' },
189
- { label: '底部', value: 'bottom' },
190
- { label: '左侧', value: 'left' },
191
- { label: '右侧', value: 'right' },
192
- ],
193
- },
194
- },
195
- extraProps: {
196
- defaultValue: 'bottom',
197
- },
198
- },
199
- {
200
- name: 'glowEffect',
201
- title: '发光效果',
202
- setter: 'SwitchSetter',
203
- extraProps: {
204
- defaultValue: true,
205
- },
206
- },
207
- ],
208
- },
209
- ],
210
- },
211
- {
212
- type: 'group',
213
- key: 'data',
214
- title: '数据',
215
- items: [
216
- {
217
- name: 'dataBinding',
218
- title: '数据绑定',
219
- setter: 'DataBindingSetter',
220
- },
221
- ],
222
- },
223
- {
224
- type: 'group',
225
- key: 'advanced',
226
- title: '高级',
227
- items: [
228
- {
229
- name: 'condition',
230
- title: '显隐控制',
231
- setter: 'SwitchSetter',
232
- extraProps: {
233
- defaultValue: true,
234
- supportVariable: true,
235
- },
236
- },
237
- ],
238
- },
239
- ],
240
- },
241
- ],
242
- component: {},
243
- supports: {},
244
- advanced: {},
245
- }
246
-
247
- export default configure
1
+ /**
2
+ * Radar Chart Configure
3
+ * 雷达图组件配置
4
+ */
5
+
6
+ import type { FieldConfig } from '@easy-editor/core'
7
+ import { createCollapseGroup, createDataConfigGroup, createStandardConfigure } from '@easy-editor/materials-shared'
8
+
9
+ /** 组件配置 */
10
+ const componentConfigGroup: FieldConfig = createCollapseGroup(
11
+ '组件配置',
12
+ [
13
+ {
14
+ type: 'group',
15
+ title: '组件配置',
16
+ setter: 'SubTabSetter',
17
+ items: [
18
+ // 数据 Tab
19
+ {
20
+ type: 'group',
21
+ key: 'chartData',
22
+ title: '数据',
23
+ items: [
24
+ {
25
+ name: 'dimensionKey',
26
+ title: '维度字段',
27
+ setter: 'StringSetter',
28
+ extraProps: {
29
+ defaultValue: 'dimension',
30
+ },
31
+ },
32
+ {
33
+ name: 'series',
34
+ title: '系列配置',
35
+ setter: 'JsonSetter',
36
+ },
37
+ ],
38
+ },
39
+ // 样式 Tab
40
+ {
41
+ type: 'group',
42
+ key: 'style',
43
+ title: '样式',
44
+ items: [
45
+ {
46
+ name: 'showGrid',
47
+ title: '显示网格',
48
+ setter: 'SwitchSetter',
49
+ extraProps: {
50
+ defaultValue: true,
51
+ },
52
+ },
53
+ {
54
+ name: 'fillOpacity',
55
+ title: '填充透明度',
56
+ setter: {
57
+ componentName: 'SliderSetter',
58
+ props: {
59
+ min: 0,
60
+ max: 1,
61
+ step: 0.1,
62
+ },
63
+ },
64
+ extraProps: {
65
+ defaultValue: 0.3,
66
+ },
67
+ },
68
+ {
69
+ name: 'glowEffect',
70
+ title: '发光效果',
71
+ setter: 'SwitchSetter',
72
+ extraProps: {
73
+ defaultValue: true,
74
+ },
75
+ },
76
+ ],
77
+ },
78
+ // 图例 Tab
79
+ {
80
+ type: 'group',
81
+ key: 'legend',
82
+ title: '图例',
83
+ items: [
84
+ {
85
+ name: 'showLegend',
86
+ title: '显示图例',
87
+ setter: 'SwitchSetter',
88
+ extraProps: {
89
+ defaultValue: true,
90
+ },
91
+ },
92
+ {
93
+ name: 'legendPosition',
94
+ title: '图例位置',
95
+ setter: {
96
+ componentName: 'SelectSetter',
97
+ props: {
98
+ options: [
99
+ { label: '顶部', value: 'top' },
100
+ { label: '底部', value: 'bottom' },
101
+ { label: '左侧', value: 'left' },
102
+ { label: '右侧', value: 'right' },
103
+ ],
104
+ },
105
+ },
106
+ extraProps: {
107
+ defaultValue: 'bottom',
108
+ },
109
+ },
110
+ {
111
+ name: 'showTooltip',
112
+ title: '显示提示',
113
+ setter: 'SwitchSetter',
114
+ extraProps: {
115
+ defaultValue: true,
116
+ },
117
+ },
118
+ ],
119
+ },
120
+ ],
121
+ },
122
+ ],
123
+ {
124
+ padding: '6px 16px 12px',
125
+ },
126
+ )
127
+
128
+ /** 数据配置 */
129
+ const dataConfigGroup: FieldConfig = createDataConfigGroup([
130
+ { name: 'dimension', label: 'dimension', type: 'string', required: true, description: '维度名称' },
131
+ { name: 'value1', label: 'value1', type: 'number', required: true, description: '数值1' },
132
+ { name: 'value2', label: 'value2', type: 'number', required: false, description: '数值2' },
133
+ ])
134
+
135
+ export const configure = createStandardConfigure(componentConfigGroup, dataConfigGroup)
package/src/index.tsx CHANGED
@@ -1,7 +1,7 @@
1
- /**
2
- * RadarChart Entry
3
- * 雷达图组件入口
4
- */
5
-
6
- export { default as component } from './component'
7
- export { default as meta } from './meta'
1
+ /**
2
+ * RadarChart Entry
3
+ * 雷达图组件入口
4
+ */
5
+
6
+ export { RadarChart as component } from './component'
7
+ export { meta } from './meta'
package/src/meta.ts CHANGED
@@ -1,23 +1,23 @@
1
- import type { ComponentMetadata } from '@easy-editor/core'
2
- import { MaterialGroup } from '@easy-editor/materials-shared'
3
- import { COMPONENT_NAME, PACKAGE_NAME } from './constants'
4
- import configure from './configure'
5
- import snippets from './snippets'
6
- import pkg from '../package.json'
7
-
8
- const meta: ComponentMetadata = {
9
- componentName: COMPONENT_NAME,
10
- title: '雷达图',
11
- group: MaterialGroup.CHART,
12
- devMode: 'proCode',
13
- npm: {
14
- package: PACKAGE_NAME,
15
- version: pkg.version,
16
- globalName: COMPONENT_NAME,
17
- componentName: COMPONENT_NAME,
18
- },
19
- snippets,
20
- configure,
21
- }
22
-
23
- export default meta
1
+ import type { ComponentMetadata } from '@easy-editor/core'
2
+ import { MaterialGroup } from '@easy-editor/materials-shared'
3
+ import { COMPONENT_NAME, PACKAGE_NAME } from './constants'
4
+ import { configure } from './configure'
5
+ import { snippets } from './snippets'
6
+ import pkg from '../package.json'
7
+
8
+ const meta: ComponentMetadata = {
9
+ componentName: COMPONENT_NAME,
10
+ title: '雷达图',
11
+ group: MaterialGroup.CHART,
12
+ devMode: 'proCode',
13
+ npm: {
14
+ package: PACKAGE_NAME,
15
+ version: pkg.version,
16
+ globalName: COMPONENT_NAME,
17
+ componentName: COMPONENT_NAME,
18
+ },
19
+ snippets,
20
+ configure,
21
+ }
22
+
23
+ export { meta }
package/src/snippets.ts CHANGED
@@ -1,57 +1,86 @@
1
- import type { Snippet } from '@easy-editor/core'
2
- import { COMPONENT_NAME, DEFAULT_DATA, DEFAULT_SERIES } from './constants'
3
-
4
- const snippets: Snippet[] = [
5
- {
6
- title: '雷达图',
7
- screenshot: '',
8
- schema: {
9
- componentName: COMPONENT_NAME,
10
- props: {
11
- data: DEFAULT_DATA,
12
- dimensionKey: 'dimension',
13
- series: DEFAULT_SERIES,
14
- showGrid: true,
15
- fillOpacity: 0.3,
16
- glowEffect: true,
17
- showLegend: true,
18
- },
19
- $dashboard: {
20
- rect: {
21
- width: 400,
22
- height: 300,
23
- },
24
- },
25
- },
26
- },
27
- {
28
- title: '单系列雷达图',
29
- screenshot: '',
30
- schema: {
31
- componentName: COMPONENT_NAME,
32
- props: {
33
- data: [
34
- { dimension: 'Attack', value: 85 },
35
- { dimension: 'Defense', value: 70 },
36
- { dimension: 'Speed', value: 95 },
37
- { dimension: 'Magic', value: 60 },
38
- { dimension: 'HP', value: 75 },
39
- ],
40
- dimensionKey: 'dimension',
41
- series: [{ name: 'Stats', dataKey: 'value', color: '#00d4ff' }],
42
- showGrid: true,
43
- fillOpacity: 0.4,
44
- glowEffect: true,
45
- showLegend: false,
46
- },
47
- $dashboard: {
48
- rect: {
49
- width: 400,
50
- height: 300,
51
- },
52
- },
53
- },
54
- },
55
- ]
56
-
57
- export default snippets
1
+ /**
2
+ * Radar Chart Snippets
3
+ * 雷达图代码片段 - 使用共享数据源生成函数
4
+ */
5
+
6
+ import type { Snippet } from '@easy-editor/core'
7
+ import { generateStaticDataSource } from '@easy-editor/materials-shared'
8
+ import { COMPONENT_NAME } from './constants'
9
+
10
+ /** 默认雷达图数据 */
11
+ const DEFAULT_RADAR_DATA = [
12
+ { dimension: '销售', series1: 80, series2: 65 },
13
+ { dimension: '管理', series1: 70, series2: 85 },
14
+ { dimension: '技术', series1: 90, series2: 75 },
15
+ { dimension: '客服', series1: 75, series2: 80 },
16
+ { dimension: '研发', series1: 85, series2: 70 },
17
+ ]
18
+
19
+ /** 默认系列配置 */
20
+ const DEFAULT_RADAR_SERIES = [
21
+ { name: '系列1', dataKey: 'series1', color: '#00d4ff' },
22
+ { name: '系列2', dataKey: 'series2', color: '#00ff88' },
23
+ ]
24
+
25
+ const snippets: Snippet[] = [
26
+ {
27
+ title: '雷达图',
28
+ screenshot: '',
29
+ schema: {
30
+ componentName: COMPONENT_NAME,
31
+ title: '雷达图',
32
+ props: {
33
+ $data: generateStaticDataSource(DEFAULT_RADAR_DATA),
34
+ dimensionKey: 'dimension',
35
+ series: DEFAULT_RADAR_SERIES,
36
+ showGrid: true,
37
+ fillOpacity: 0.3,
38
+ glowEffect: true,
39
+ showLegend: true,
40
+ rotation: 0,
41
+ opacity: 100,
42
+ background: 'transparent',
43
+ },
44
+ $dashboard: {
45
+ rect: {
46
+ width: 400,
47
+ height: 300,
48
+ },
49
+ },
50
+ },
51
+ },
52
+ {
53
+ title: '单系列雷达图',
54
+ screenshot: '',
55
+ schema: {
56
+ componentName: COMPONENT_NAME,
57
+ title: '单系列雷达图',
58
+ props: {
59
+ $data: generateStaticDataSource([
60
+ { dimension: 'Attack', value: 85 },
61
+ { dimension: 'Defense', value: 70 },
62
+ { dimension: 'Speed', value: 95 },
63
+ { dimension: 'Magic', value: 60 },
64
+ { dimension: 'HP', value: 75 },
65
+ ]),
66
+ dimensionKey: 'dimension',
67
+ series: [{ name: 'Stats', dataKey: 'value', color: '#00d4ff' }],
68
+ showGrid: true,
69
+ fillOpacity: 0.4,
70
+ glowEffect: true,
71
+ showLegend: false,
72
+ rotation: 0,
73
+ opacity: 100,
74
+ background: 'transparent',
75
+ },
76
+ $dashboard: {
77
+ rect: {
78
+ width: 400,
79
+ height: 300,
80
+ },
81
+ },
82
+ },
83
+ },
84
+ ]
85
+
86
+ export { snippets }
package/tsconfig.json CHANGED
@@ -1,9 +1,20 @@
1
- {
2
- "compilerOptions": {
3
- "jsx": "react-jsx",
4
- "esModuleInterop": true,
5
- "allowSyntheticDefaultImports": true
6
- },
7
- "extends": "./tsconfig.build.json",
8
- "include": ["./src", "./test"]
9
- }
1
+ {
2
+ "compilerOptions": {
3
+ "emitDeclarationOnly": true,
4
+ "declaration": true,
5
+ "target": "ESNext",
6
+ "newLine": "LF",
7
+ "module": "ESNext",
8
+ "moduleResolution": "Bundler",
9
+ "strict": true,
10
+ "strictNullChecks": true,
11
+ "jsx": "react-jsx",
12
+ "esModuleInterop": true,
13
+ "allowSyntheticDefaultImports": true,
14
+ "strictPropertyInitialization": false,
15
+ "outDir": "./dist",
16
+ "skipLibCheck": true,
17
+ },
18
+ "exclude": ["node_modules", "dist"],
19
+ "include": ["./src"]
20
+ }