@operato/scene-chartjs 0.0.5
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/CHANGELOG.md +17 -0
- package/LICENSE +21 -0
- package/README.md +21 -0
- package/assets/bar-chart.png +0 -0
- package/assets/doughnut-chart.png +0 -0
- package/assets/horizontal-bar-chart.png +0 -0
- package/assets/line-chart.png +0 -0
- package/assets/mixed-chart.png +0 -0
- package/assets/pie-chart.png +0 -0
- package/assets/polar-area-chart.png +0 -0
- package/assets/radar-chart.png +0 -0
- package/demo/bar.html +266 -0
- package/demo/chartjs.html +73 -0
- package/demo/index.html +547 -0
- package/demo/legend.html +267 -0
- package/demo/things-scene-chartjs.html +7 -0
- package/dist/chartjs.d.ts +27 -0
- package/dist/chartjs.js +109 -0
- package/dist/chartjs.js.map +1 -0
- package/dist/config-converter.d.ts +1 -0
- package/dist/config-converter.js +343 -0
- package/dist/config-converter.js.map +1 -0
- package/dist/editors/index.d.ts +5 -0
- package/dist/editors/index.js +11 -0
- package/dist/editors/index.js.map +1 -0
- package/dist/editors/property-editor-chartjs-abstract.d.ts +44 -0
- package/dist/editors/property-editor-chartjs-abstract.js +250 -0
- package/dist/editors/property-editor-chartjs-abstract.js.map +1 -0
- package/dist/editors/property-editor-chartjs-hbar.d.ts +9 -0
- package/dist/editors/property-editor-chartjs-hbar.js +160 -0
- package/dist/editors/property-editor-chartjs-hbar.js.map +1 -0
- package/dist/editors/property-editor-chartjs-mixed.d.ts +20 -0
- package/dist/editors/property-editor-chartjs-mixed.js +193 -0
- package/dist/editors/property-editor-chartjs-mixed.js.map +1 -0
- package/dist/editors/property-editor-chartjs-multi-series-abstract.d.ts +31 -0
- package/dist/editors/property-editor-chartjs-multi-series-abstract.js +373 -0
- package/dist/editors/property-editor-chartjs-multi-series-abstract.js.map +1 -0
- package/dist/editors/property-editor-chartjs-pie.d.ts +14 -0
- package/dist/editors/property-editor-chartjs-pie.js +70 -0
- package/dist/editors/property-editor-chartjs-pie.js.map +1 -0
- package/dist/editors/property-editor-chartjs-radar.d.ts +10 -0
- package/dist/editors/property-editor-chartjs-radar.js +42 -0
- package/dist/editors/property-editor-chartjs-radar.js.map +1 -0
- package/dist/editors/property-editor-chartjs-styles.d.ts +1 -0
- package/dist/editors/property-editor-chartjs-styles.js +165 -0
- package/dist/editors/property-editor-chartjs-styles.js.map +1 -0
- package/dist/editors/property-editor-chartjs.d.ts +14 -0
- package/dist/editors/property-editor-chartjs.js +83 -0
- package/dist/editors/property-editor-chartjs.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/ox-chart.d.ts +20 -0
- package/dist/ox-chart.js +137 -0
- package/dist/ox-chart.js.map +1 -0
- package/dist/plugins/chart-series-highlight.d.ts +5 -0
- package/dist/plugins/chart-series-highlight.js +37 -0
- package/dist/plugins/chart-series-highlight.js.map +1 -0
- package/dist/plugins/chartjs-plugin-data-binder.d.ts +5 -0
- package/dist/plugins/chartjs-plugin-data-binder.js +111 -0
- package/dist/plugins/chartjs-plugin-data-binder.js.map +1 -0
- package/helps/scene/component/chartjs.ko.md +332 -0
- package/helps/scene/component/chartjs.md +333 -0
- package/helps/scene/component/chartjs.zh.md +331 -0
- package/helps/scene/images/chart-bar-01.png +0 -0
- package/helps/scene/images/chart-bar-02.png +0 -0
- package/helps/scene/images/chart-bar-03.png +0 -0
- package/helps/scene/images/chart-bar-08.png +0 -0
- package/helps/scene/images/chart-bar-12.png +0 -0
- package/helps/scene/images/chart-data-01.png +0 -0
- package/helps/scene/images/chart-data-04.png +0 -0
- package/helps/scene/images/chart-doughnut-01.png +0 -0
- package/helps/scene/images/chart-horizontal-bar-01.png +0 -0
- package/helps/scene/images/chart-line-01.png +0 -0
- package/helps/scene/images/chart-mix-01.png +0 -0
- package/helps/scene/images/chart-mix-02.png +0 -0
- package/helps/scene/images/chart-pie-01.png +0 -0
- package/helps/scene/images/chart-polar-01.png +0 -0
- package/helps/scene/images/chart-radar-01.png +0 -0
- package/package.json +78 -0
- package/src/chartjs.ts +134 -0
- package/src/config-converter.ts +401 -0
- package/src/editors/index.ts +11 -0
- package/src/editors/property-editor-chartjs-abstract.ts +301 -0
- package/src/editors/property-editor-chartjs-hbar.ts +163 -0
- package/src/editors/property-editor-chartjs-mixed.ts +204 -0
- package/src/editors/property-editor-chartjs-multi-series-abstract.ts +393 -0
- package/src/editors/property-editor-chartjs-pie.ts +79 -0
- package/src/editors/property-editor-chartjs-radar.ts +43 -0
- package/src/editors/property-editor-chartjs-styles.ts +165 -0
- package/src/editors/property-editor-chartjs.ts +88 -0
- package/src/index.ts +7 -0
- package/src/ox-chart.ts +150 -0
- package/src/plugins/chart-series-highlight.ts +43 -0
- package/src/plugins/chartjs-plugin-data-binder.ts +138 -0
- package/src/scene-chart.d.ts +152 -0
- package/templates/bar-chart.js +124 -0
- package/templates/doughnut-chart.js +58 -0
- package/templates/horizontal-bar-chart.js +121 -0
- package/templates/index.js +22 -0
- package/templates/line-chart.js +155 -0
- package/templates/mixed-chart.js +152 -0
- package/templates/pie-chart.js +58 -0
- package/templates/polar-area-chart.js +92 -0
- package/templates/radar-chart.js +98 -0
- package/test/basic-test.html +61 -0
- package/test/index.html +20 -0
- package/things-scene.config.js +7 -0
- package/translations/en.json +5 -0
- package/translations/ko.json +5 -0
- package/translations/ms.json +5 -0
- package/translations/zh.json +5 -0
- package/tsconfig.json +22 -0
- package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,331 @@
|
|
1
|
+
# **图表**
|
2
|
+
|
3
|
+
## 1. 共同
|
4
|
+
|
5
|
+
### 1.1. 通用属性
|
6
|
+
|
7
|
+
* 主题 - 更改图表的主题。 支持“light”和“dark”
|
8
|
+
* 范例 - 显示图表的范例。
|
9
|
+
* 位置 - 设置系列中显示值的位置
|
10
|
+
* 多轴 - 是否表示为左右多轴,选择多轴时,将显示Y辅助轴和Y辅助轴选项。
|
11
|
+
|
12
|
+
### 1.2. X 轴
|
13
|
+
|
14
|
+
* 数据键 - 要在图表上表示的数据的字段名称。 输入要在X轴中表示的数据字段名称。 显示以下数据时,它将是“DATE”。
|
15
|
+
![Chart-bar-主题][chart-bar-01]
|
16
|
+
* 标题 - X轴的标题
|
17
|
+
* 网格线 - 网格线是否显示纵向网格
|
18
|
+
![X 轴 Grid][chart-bar-08]
|
19
|
+
* 显示刻度 - X轴是否显示刻度
|
20
|
+
|
21
|
+
### 1.3. Y 轴
|
22
|
+
|
23
|
+
* 标题 - 在Y轴中输入所需的标题
|
24
|
+
* 自动计算最小值 - 选择自动计算最小值时,将自动应用最小值和刻度来计算比例
|
25
|
+
* 最小 - 当“自动计算最小值”关闭时显示,并且可设定最小刻度。
|
26
|
+
* 自动计算最大值 - 选择自动计算最大值时,将自动应用最大值和刻度来计算比例
|
27
|
+
* 最大 - 当“自动计算最大值”关闭时显示,并且可设定最大刻度。
|
28
|
+
* 刻度大小 - 设置刻度大小
|
29
|
+
* 网格线 - 是否显示横向网格线
|
30
|
+
![Y 轴 Grid][chart-bar-12]
|
31
|
+
* 显示刻度 -Y轴是否显示刻度
|
32
|
+
|
33
|
+
---
|
34
|
+
|
35
|
+
## 2. 混合图表(纵向条形图表&折线图)
|
36
|
+
* 通过混合条形和线形来表示数据的图表。 __(混合图的属性与条形图和折线图相同。)__
|
37
|
+
* 数据可以用条形或线形或混合使用条形和线形来表示。 当有多个系列(字段)时,可以表示为并列条形图表或堆叠条形图表。
|
38
|
+
![chart-mix-chart Type][chart-mix-02]
|
39
|
+
|
40
|
+
[chart-mix-02]: ../images/chart-mix-02.png
|
41
|
+
|
42
|
+
### 2.1. 系列
|
43
|
+
* 使用按钮“+”可以添加多个系列的数据。
|
44
|
+
* **共同**
|
45
|
+
* 数据键 - 定义要由系列引用的原始数据在Y轴中表示的数据的字段名称,显示以下数据时,系列的数据键为“Good”和“Bad”。
|
46
|
+
![Data Refer][chart-bar-01]
|
47
|
+
* 类型 - 选择折线图或条形图表示系列。
|
48
|
+
* 标签 - 范例标签。
|
49
|
+
* 颜色 - 指定系列在图表上显示的颜色。
|
50
|
+
* 堆叠组 - 同一堆叠组中包含的系列的值被累积并以图形表示。
|
51
|
+
![堆叠组][chart-bar-02]
|
52
|
+
* 对象轴 - 当多轴被选择时,出现对象轴字段,并且对象轴指向该系列信息所引用的轴(轴刻度)。
|
53
|
+
![对象轴][chart-bar-03]
|
54
|
+
* 数据前缀 - 显示值时将用作该值作为前缀的字符(鼠标悬停,显示值设置等)(例如:data:100,数据前缀:$ =>结果: $100)
|
55
|
+
* 数据后缀 - 显示值时将用作该值作为后缀的字符(鼠标悬停,显示值设置等)(例如:data:100,数据后缀:元 =>结果: 100元)
|
56
|
+
* 显示值 - 确定是否在屏幕上显示系列的数据值。 选择显示值时,将出现以下项目。
|
57
|
+
* 字体颜色 - 设置系列中显示值的颜色
|
58
|
+
* 大小 - 设置系列中显示值的字体大小
|
59
|
+
* 位置 - 设置系列中显示值的位置
|
60
|
+
* **如果选择类型为折线图**
|
61
|
+
* 线张力 - 使用直线的图形(angled),使用平滑的图形(smooth)
|
62
|
+
* 线厚度 - 设置线厚度
|
63
|
+
* 点形状 - 线上每个顶点的点形状
|
64
|
+
* 点大小 - 线的每个顶点的大小
|
65
|
+
* 填充 - 填充线绘制的面积
|
66
|
+
|
67
|
+
### 2.2. X 轴
|
68
|
+
|
69
|
+
* 与[通用属性](#12-x-轴)中定义的内容相同
|
70
|
+
* 条间距 - 条形柱之间的间隙,它会影响条形的大小。
|
71
|
+
* 刻度间距 - 刻度之间的间隙,它会影响条形的大小。
|
72
|
+
|
73
|
+
### 2.3. Y 轴
|
74
|
+
|
75
|
+
* 与[通用属性](#13-y-轴)中定义的内容相同
|
76
|
+
|
77
|
+
### 2.4. Y辅助轴(在多轴被勾选时显示)
|
78
|
+
|
79
|
+
* 与[通用属性](#13-y-轴)中定义的内容相同
|
80
|
+
|
81
|
+
|
82
|
+
[chart-bar-01]: ../images/chart-bar-01.png
|
83
|
+
|
84
|
+
[chart-bar-02]: ../images/chart-bar-02.png
|
85
|
+
|
86
|
+
[chart-bar-03]: ../images/chart-bar-03.png
|
87
|
+
|
88
|
+
[chart-bar-08]: ../images/chart-bar-08.png
|
89
|
+
|
90
|
+
[chart-bar-12]: ../images/chart-bar-12.png
|
91
|
+
|
92
|
+
|
93
|
+
---
|
94
|
+
|
95
|
+
## 3. 水平条形图
|
96
|
+
|
97
|
+
以水平柱状图形式表示数据的图表。 当有多个字段时,可以表示为平行柱或堆叠柱。
|
98
|
+
|
99
|
+
### 3.1. 通用属性
|
100
|
+
* 主题 - 更改图表的主题。 支持“light”和“dark”
|
101
|
+
* 范例 - 显示图表的范例。
|
102
|
+
* 位置 - 设置系列中显示值的位置
|
103
|
+
* 多轴 - 是否表示为左右多轴,选择多轴时,将显示Y辅助轴和Y辅助轴选项。
|
104
|
+
|
105
|
+
### 3.2. 系列
|
106
|
+
|
107
|
+
* 使用按钮“ +”可以添加多个系列的数据。
|
108
|
+
* **共同**
|
109
|
+
* 数据键 - 定义要由系列引用的原始数据在Y轴中表示的数据的字段名称,显示以下数据时,系列的数据键为“Good”和“Bad”。
|
110
|
+
![Data Refer][chart-bar-01]
|
111
|
+
* 标签 - 范例标签
|
112
|
+
* 颜色 - 指定系列在图表上显示的颜色
|
113
|
+
* 堆叠组 - 同一堆叠组中包含的系列的值被累积并以图形表示。
|
114
|
+
![堆叠组][chart-bar-02]
|
115
|
+
* 对象轴 - 当多轴被选择时,出现对象轴字段,并且对象轴指向该系列信息所引用的轴(轴刻度)。
|
116
|
+
![对象轴][chart-bar-03]
|
117
|
+
* 数据前缀 - 显示值时将用作该值作为前缀的字符(鼠标悬停,显示值设置等)(例如:data:100,数据前缀:$ =>结果: $100)
|
118
|
+
* 数据后缀 - 显示值时将用作该值作为后缀的字符(鼠标悬停,显示值设置等)(例如:data:100,数据后缀:元 =>结果: 100元)
|
119
|
+
* 显示值 - 确定是否在屏幕上显示系列的数据值。 选择显示值时,将出现以下项目。
|
120
|
+
* 字体颜色 - 设置系列中显示值的颜色
|
121
|
+
* 大小 - 设置系列中显示值的字体大小
|
122
|
+
* 位置 - 设置系列中显示值的位置
|
123
|
+
|
124
|
+
### 3.3. X 轴
|
125
|
+
|
126
|
+
* 数据键 - 要在图表上表示的数据的字段名称。 输入要在X轴中表示的数据字段名称。 显示以下数据时,它将是“DATE”。
|
127
|
+
![Data Refer][chart-horizontal-bar-01]
|
128
|
+
* 标题 - X轴的标题
|
129
|
+
* 网格线 - 网格线是否显示纵向网格
|
130
|
+
* 显示刻度 - X轴是否显示刻度
|
131
|
+
|
132
|
+
### 3.4. Y 轴
|
133
|
+
|
134
|
+
* 标题 - 在Y轴中输入所需的标题
|
135
|
+
* 自动计算最小值 - 选择自动计算最小值时,将自动应用最小值和刻度来计算比例
|
136
|
+
* 最小 - 当“自动计算最小值”关闭时显示,并且可设定最小刻度。
|
137
|
+
* 自动计算最大值 - 选择自动计算最大值时,将自动应用最大值和刻度来计算比例
|
138
|
+
* 最大 - 当“自动计算最大值”关闭时显示,并且可设定最大刻度。
|
139
|
+
* 刻度大小 - 设置刻度大小
|
140
|
+
* 网格线 - 是否显示横向网格线
|
141
|
+
* 显示刻度 -Y轴是否显示刻度
|
142
|
+
|
143
|
+
|
144
|
+
[chart-horizontal-bar-01]: ../images/chart-horizontal-bar-01.png
|
145
|
+
|
146
|
+
---
|
147
|
+
## 4. 折线图
|
148
|
+
|
149
|
+
以线形表示数据的图表。
|
150
|
+
|
151
|
+
### 4.1. Properties
|
152
|
+
|
153
|
+
* 主题 - 更改图表的主题。 支持“light”和“dark”
|
154
|
+
* 范例 - 显示图表的范例。
|
155
|
+
* 位置 - 设置系列中显示值的位置
|
156
|
+
* 多轴 - 是否表示为左右多轴,选择多轴时,将显示Y辅助轴和Y辅助轴选项。
|
157
|
+
|
158
|
+
### 4.2. 系列
|
159
|
+
|
160
|
+
* 使用按钮“ +”可以添加多个系列的数据。
|
161
|
+
* **共同**
|
162
|
+
* 数据键 - 在系列中引用的原始数据中,要在图表中表示的数据的字段名称,当显示以下数据时,系列的数据键变为“Good”或“Bad”。
|
163
|
+
![Data Refer][chart-line-01]
|
164
|
+
* 线张力 - 使用直线的图形(angled),使用平滑的图形(smooth)
|
165
|
+
* 线厚度 - 设置线厚度
|
166
|
+
* 标签 - 范例标签
|
167
|
+
* 颜色 - 指定系列在图表上显示的颜色
|
168
|
+
* 点形状 - 线上每个顶点的点形状
|
169
|
+
* 点大小 - 线的每个顶点的大小
|
170
|
+
* 堆叠组 - 同一堆叠组中包含的系列的值被累积并以图形表示。
|
171
|
+
* 填充 - The space where the line is drawn is filled in the figure that displays the data by using the color of the common inner definition.
|
172
|
+
* 对象轴 - 当多轴被选择时,出现对象轴字段,并且对象轴指向该系列信息所引用的轴(轴刻度)。
|
173
|
+
* 数据前缀 - 显示值时将用作该值作为前缀的字符(鼠标悬停,显示值设置等)(例如:data:100,数据前缀:$ =>结果: $100)
|
174
|
+
* 数据后缀 - 显示值时将用作该值作为后缀的字符(鼠标悬停,显示值设置等)(例如:data:100,数据后缀:元 =>结果: 100元)
|
175
|
+
* 显示值 - 确定是否在屏幕上显示系列的数据值。 选择显示值时,将出现以下项目。
|
176
|
+
* 字体颜色 - 设置系列中显示值的颜色
|
177
|
+
* 大小 - 设置系列中显示值的字体大小
|
178
|
+
* 位置 - 设置系列中显示值的位置
|
179
|
+
|
180
|
+
### 4.3. X 轴
|
181
|
+
|
182
|
+
* 数据键 - 要在图表上表示的数据的字段名称。 输入要在X轴中表示的数据字段名称。 显示以下数据时,它将是“DATE”。
|
183
|
+
![Data Refer][chart-line-01]
|
184
|
+
* 标题 - X轴的标题
|
185
|
+
* 网格线 - 网格线是否显示纵向网格
|
186
|
+
* 显示刻度 - X轴是否显示刻度
|
187
|
+
|
188
|
+
### 4.4. Y 轴
|
189
|
+
* 标题 - 在Y轴中输入所需的标题
|
190
|
+
* 自动计算最小值 - 选择自动计算最小值时,将自动应用最小值和刻度来计算比例
|
191
|
+
* 最小 - 当“自动计算最小值”关闭时显示,并且可设定最小刻度。
|
192
|
+
* 自动计算最大值 - 选择自动计算最大值时,将自动应用最大值和刻度来计算比例
|
193
|
+
* 最大 - 当“自动计算最大值”关闭时显示,并且可设定最大刻度。
|
194
|
+
* 刻度大小 - 设置刻度大小
|
195
|
+
* 网格线 - 是否显示横向网格线
|
196
|
+
* 显示刻度 -Y轴是否显示刻度
|
197
|
+
|
198
|
+
|
199
|
+
[chart-line-01]: ../images/chart-line-01.png
|
200
|
+
|
201
|
+
---
|
202
|
+
## 5. 雷达图
|
203
|
+
|
204
|
+
以雷达形式表示数据的图表。 雷达图数据以多条线的形式表示。
|
205
|
+
|
206
|
+
### 5.1. 通用属性
|
207
|
+
|
208
|
+
* 主题 - 更改图表的主题。 支持“light”和“dark”
|
209
|
+
* 范例 - 显示图表的范例。
|
210
|
+
* 位置 - 设置系列中显示值的位置
|
211
|
+
|
212
|
+
### 5.2. 系列
|
213
|
+
|
214
|
+
* 使用按钮“ +”可以添加多个系列的数据。
|
215
|
+
* **共同**
|
216
|
+
* 数据键 - 在系列中引用的原始数据中,要在图表中表示的数据的字段名称,当显示以下数据时,系列的数据键变为“Good”。
|
217
|
+
![Data Refer][chart-radar-01]
|
218
|
+
* 标签 - 范例标签
|
219
|
+
* 颜色 - 指定系列在图表上显示的颜色
|
220
|
+
* 堆叠组 - 同一堆叠组中包含的系列的值被累积并以图形表示。
|
221
|
+
* 数据前缀 - 显示值时将用作该值作为前缀的字符(鼠标悬停,显示值设置等)(例如:data:100,数据前缀:$ =>结果: $100)
|
222
|
+
* 数据后缀 - 显示值时将用作该值作为后缀的字符(鼠标悬停,显示值设置等)(例如:data:100,数据后缀:元 =>结果: 100元)
|
223
|
+
* 显示值 - 确定是否在屏幕上显示系列的数据值。 选择显示值时,将出现以下项目。
|
224
|
+
* 字体颜色 - 设置系列中显示值的颜色
|
225
|
+
* 大小 - 设置系列中显示值的字体大小
|
226
|
+
* 位置 - 设置系列中显示值的位置
|
227
|
+
|
228
|
+
### 5.3. 轴
|
229
|
+
* 数据键 - 要在图表上表示的数据的字段名称。 输入要在轴中表示的数据字段名称。 显示以下数据时,它将是“LINE”。
|
230
|
+
![Data Refer][chart-radar-01]
|
231
|
+
|
232
|
+
[chart-radar-01]: ../images/chart-radar-01.png
|
233
|
+
|
234
|
+
---
|
235
|
+
|
236
|
+
## 6. 极坐标图
|
237
|
+
|
238
|
+
以极坐标表示数据的图表。
|
239
|
+
|
240
|
+
### 6.1. 通用属性
|
241
|
+
|
242
|
+
* 主题 - 更改图表的主题。 支持“light”和“dark”
|
243
|
+
* 范例 - 显示图表的范例。
|
244
|
+
* 位置 - 设置系列中显示值的位置
|
245
|
+
|
246
|
+
### 6.2. 系列
|
247
|
+
|
248
|
+
* 使用按钮“ +”可以添加多个系列的数据。
|
249
|
+
* **共同**
|
250
|
+
* 数据键 - 在系列中引用的原始数据中,要在图表中表示的数据的字段名称,当显示以下数据时,系列的数据键变为“Good”。
|
251
|
+
![Data Refer][chart-polar-01]
|
252
|
+
* 标签 - 范例标签
|
253
|
+
* 颜色 - 指定系列在图表上显示的颜色
|
254
|
+
* 数据前缀 - 显示值时将用作该值作为前缀的字符(鼠标悬停,显示值设置等)(例如:data:100,数据前缀:$ =>结果: $100)
|
255
|
+
* 数据后缀 - 显示值时将用作该值作为后缀的字符(鼠标悬停,显示值设置等)(例如:data:100,数据后缀:元 =>结果: 100元)
|
256
|
+
* 显示值 - 确定是否在屏幕上显示系列的数据值。 选择显示值时,将出现以下项目。
|
257
|
+
* 字体颜色 - 设置系列中显示值的颜色
|
258
|
+
* 大小 - 设置系列中显示值的字体大小
|
259
|
+
* 位置 - 设置系列中显示值的位置
|
260
|
+
|
261
|
+
### 6.3. 轴
|
262
|
+
* 数据键 - 要在图表上表示的数据的字段名称。 输入要在轴中表示的数据字段名称。 显示以下数据时,它将是“LINE”。
|
263
|
+
![Data Refer][chart-polar-01]
|
264
|
+
|
265
|
+
[chart-polar-01]: ../images/chart-polar-01.png
|
266
|
+
|
267
|
+
---
|
268
|
+
|
269
|
+
## 7. 饼图
|
270
|
+
|
271
|
+
以饼形态表示数据的图表。
|
272
|
+
|
273
|
+
### 7.1. 通用属性
|
274
|
+
|
275
|
+
* 主题 - 更改图表的主题。 支持“light”和“dark”
|
276
|
+
* 范例 - 显示图表的范例。
|
277
|
+
* 位置 - 可以在四个方向上放置:顶部,底部,左侧和右侧。
|
278
|
+
|
279
|
+
### 7.2. 系列
|
280
|
+
|
281
|
+
* 使用按钮“ +”可以添加多个系列的数据。
|
282
|
+
* **共同**
|
283
|
+
* 数据键 - 在系列中引用的原始数据中,要在图表中表示的数据的字段名称,当显示以下数据时,系列的数据键变为“Good”。
|
284
|
+
![Data Refer][chart-pie-01]
|
285
|
+
* Label - 范例标签
|
286
|
+
* Color - 指定系列在图表上显示的颜色
|
287
|
+
* 数据前缀 - 显示值时将用作该值作为前缀的字符(鼠标悬停,显示值设置等)(例如:data:100,数据前缀:$ =>结果: $100)
|
288
|
+
* 数据后缀 - 显示值时将用作该值作为后缀的字符(鼠标悬停,显示值设置等)(例如:data:100,数据后缀:元 =>结果: 100元)
|
289
|
+
* 显示值 - 确定是否在屏幕上显示系列的数据值。 选择显示值时,将出现以下项目。
|
290
|
+
* 字体颜色 - 设置系列中显示值的颜色
|
291
|
+
* 大小 - 设置系列中显示值的字体大小
|
292
|
+
* 位置 - 设置系列中显示值的位置
|
293
|
+
|
294
|
+
### 7.3. 轴
|
295
|
+
* 数据键 - 要在图表上表示的数据的字段名称。 输入要在轴中表示的数据字段名称。 显示以下数据时,它将是“LINE”。
|
296
|
+
![Data Refer][chart-pie-01]
|
297
|
+
|
298
|
+
[chart-pie-01]: ../images/chart-pie-01.png
|
299
|
+
|
300
|
+
---
|
301
|
+
|
302
|
+
## 8. 环形图
|
303
|
+
|
304
|
+
以环形形状显示数据的图表。
|
305
|
+
|
306
|
+
### 8.1. 通用属性
|
307
|
+
|
308
|
+
* 主题 - 更改图表的主题。 支持“light”和“dark”
|
309
|
+
* 范例 - 显示图表的范例。
|
310
|
+
* 位置 - 可以在四个方向上放置:顶部,底部,左侧和右侧。
|
311
|
+
|
312
|
+
### 8.2. 系列
|
313
|
+
|
314
|
+
* 使用按钮“ +”可以添加多个系列的数据。
|
315
|
+
* **共同**
|
316
|
+
* 数据键 - 在系列中引用的原始数据中,要在图表中表示的数据的字段名称,当显示以下数据时,系列的数据键变为“Good”。
|
317
|
+
![Data Refer][chart-doughnut-01]
|
318
|
+
* 标签 - 范例标签
|
319
|
+
* 颜色 - 指定系列在图表上显示的颜色
|
320
|
+
* 数据前缀 - 显示值时将用作该值作为前缀的字符(鼠标悬停,显示值设置等)(例如:data:100,数据前缀:$ =>结果: $100)
|
321
|
+
* 数据后缀 - 显示值时将用作该值作为后缀的字符(鼠标悬停,显示值设置等)(例如:data:100,数据后缀:元 =>结果: 100元)
|
322
|
+
* 显示值-确定是否在屏幕上显示系列的数据值。 选择显示值时,将出现以下项目。
|
323
|
+
* 字体颜色 - 设置系列中显示值的颜色
|
324
|
+
* 大小 - 设置系列中显示值的字体大小
|
325
|
+
* 位置 - 设置系列中显示值的位置
|
326
|
+
|
327
|
+
### 8.3. 轴
|
328
|
+
* 数据键 - 要在图表上表示的数据的字段名称。 输入要在轴中表示的数据字段名称。 显示以下数据时,它将是“LINE”。
|
329
|
+
![Data Refer][chart-doughnut-01]
|
330
|
+
|
331
|
+
[chart-doughnut-01]: ../images/chart-doughnut-01.png
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
package/package.json
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
{
|
2
|
+
"name": "@operato/scene-chartjs",
|
3
|
+
"description": "Things Scene ChartJS Component",
|
4
|
+
"version": "0.0.5",
|
5
|
+
"license": "MIT",
|
6
|
+
"author": "heartyoh",
|
7
|
+
"main": "dist/index.js",
|
8
|
+
"module": "dist/index.js",
|
9
|
+
"things-scene": true,
|
10
|
+
"publishConfig": {
|
11
|
+
"access": "public",
|
12
|
+
"@operato:registry": "https://registry.npmjs.org"
|
13
|
+
},
|
14
|
+
"repository": {
|
15
|
+
"type": "git",
|
16
|
+
"url": "git+https://github.com/things-scene/operato-scene.git",
|
17
|
+
"directory": "packages/chartjs"
|
18
|
+
},
|
19
|
+
"scripts": {
|
20
|
+
"serve": "tsc && things-factory-dev",
|
21
|
+
"start": "tsc && concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"wds\"",
|
22
|
+
"build": "tsc",
|
23
|
+
"prepublish": "tsc",
|
24
|
+
"lint": "eslint --ext .ts,.html . --ignore-path .gitignore && prettier \"**/*.ts\" --check --ignore-path .gitignore",
|
25
|
+
"format": "eslint --ext .ts,.html . --fix --ignore-path .gitignore && prettier \"**/*.ts\" --write --ignore-path .gitignore",
|
26
|
+
"migration": "things-factory-migration"
|
27
|
+
},
|
28
|
+
"dependencies": {
|
29
|
+
"@ctrl/tinycolor": "^3.1.6",
|
30
|
+
"@hatiolab/things-scene": "^2.7.16",
|
31
|
+
"@polymer/iron-icon": "^3.0.1",
|
32
|
+
"@polymer/iron-pages": "^3.0.1",
|
33
|
+
"@polymer/paper-button": "^3.0.1",
|
34
|
+
"@polymer/paper-icon-button": "^3.0.2",
|
35
|
+
"@polymer/paper-tabs": "^3.1.0",
|
36
|
+
"@webcomponents/template": "^1.5.0",
|
37
|
+
"@webcomponents/webcomponentsjs": "^2.6.0",
|
38
|
+
"chart.js": "^2.9.4",
|
39
|
+
"chartjs-plugin-colorschemes": "^0.4.0",
|
40
|
+
"chartjs-plugin-crosshair": "^1.1.6",
|
41
|
+
"chartjs-plugin-datalabels": "^0.7.0",
|
42
|
+
"chartjs-plugin-style": "^0.5.0",
|
43
|
+
"core-js": "^3.16.0",
|
44
|
+
"lit": "^2.0.2",
|
45
|
+
"regenerator-runtime": "^0.13.3"
|
46
|
+
},
|
47
|
+
"devDependencies": {
|
48
|
+
"@hatiolab/prettier-config": "^1.0.0",
|
49
|
+
"@operato/board": "^0.2.27",
|
50
|
+
"@things-factory/builder": "^4.0.6",
|
51
|
+
"@things-factory/operato-board": "^4.0.6",
|
52
|
+
"@types/chart.js": "2.9.34",
|
53
|
+
"@typescript-eslint/eslint-plugin": "^4.33.0",
|
54
|
+
"@typescript-eslint/parser": "^4.33.0",
|
55
|
+
"@web/dev-server": "^0.1.28",
|
56
|
+
"concurrently": "^5.3.0",
|
57
|
+
"eslint": "^7.32.0",
|
58
|
+
"eslint-config-prettier": "^8.3.0",
|
59
|
+
"husky": "^4.3.8",
|
60
|
+
"lint-staged": "^10.5.4",
|
61
|
+
"prettier": "^2.4.1",
|
62
|
+
"tslib": "^2.3.1",
|
63
|
+
"typescript": "^4.5.2"
|
64
|
+
},
|
65
|
+
"prettier": "@hatiolab/prettier-config",
|
66
|
+
"husky": {
|
67
|
+
"hooks": {
|
68
|
+
"pre-commit": "lint-staged"
|
69
|
+
}
|
70
|
+
},
|
71
|
+
"lint-staged": {
|
72
|
+
"*.ts": [
|
73
|
+
"eslint --fix",
|
74
|
+
"prettier --write"
|
75
|
+
]
|
76
|
+
},
|
77
|
+
"gitHead": "d3717e3284d88dc2831fbcf4ddbce827e2cc2940"
|
78
|
+
}
|
package/src/chartjs.ts
ADDED
@@ -0,0 +1,134 @@
|
|
1
|
+
import './ox-chart'
|
2
|
+
|
3
|
+
/*
|
4
|
+
* Copyright © HatioLab Inc. All rights reserved.
|
5
|
+
*/
|
6
|
+
import { Component, HTMLOverlayElement, Properties, error } from '@hatiolab/things-scene'
|
7
|
+
|
8
|
+
import { OxChart } from './ox-chart'
|
9
|
+
import cloneDeep from 'lodash/cloneDeep'
|
10
|
+
|
11
|
+
const NATURE = {
|
12
|
+
mutable: false,
|
13
|
+
resizable: true,
|
14
|
+
rotatable: true,
|
15
|
+
properties: [
|
16
|
+
{
|
17
|
+
type: 'chartjs',
|
18
|
+
label: '',
|
19
|
+
name: 'chart'
|
20
|
+
}
|
21
|
+
],
|
22
|
+
'value-property': 'data',
|
23
|
+
help: 'scene/component/chartjs'
|
24
|
+
}
|
25
|
+
|
26
|
+
export default class ChartJS extends HTMLOverlayElement {
|
27
|
+
private _isChartChanged = false
|
28
|
+
private _isDataChanged = false
|
29
|
+
|
30
|
+
get nature() {
|
31
|
+
return NATURE
|
32
|
+
}
|
33
|
+
|
34
|
+
get hasTextProperty() {
|
35
|
+
return false
|
36
|
+
}
|
37
|
+
|
38
|
+
get tagName() {
|
39
|
+
return 'ox-chart'
|
40
|
+
}
|
41
|
+
|
42
|
+
isShadowable() {
|
43
|
+
return false
|
44
|
+
}
|
45
|
+
|
46
|
+
createElement() {
|
47
|
+
super.createElement()
|
48
|
+
|
49
|
+
var { width, height } = this.bounds
|
50
|
+
var element = this.element as OxChart
|
51
|
+
var data = this.data
|
52
|
+
|
53
|
+
element.width = width
|
54
|
+
element.height = height
|
55
|
+
|
56
|
+
this._setChartConfig(element)
|
57
|
+
element.data = data
|
58
|
+
}
|
59
|
+
|
60
|
+
/* component.property => element.property */
|
61
|
+
setElementProperties(element: OxChart) {
|
62
|
+
this.set('lineWidth', 0) // border 표현이 자연스럽게 바뀌면 지울것.
|
63
|
+
|
64
|
+
var { chart: chartConfig } = this.state
|
65
|
+
var { width, height } = this.bounds
|
66
|
+
var data = this.data
|
67
|
+
|
68
|
+
try {
|
69
|
+
element.width = width
|
70
|
+
element.height = height
|
71
|
+
|
72
|
+
if (chartConfig && this._isChartChanged) {
|
73
|
+
this._setChartConfig(element)
|
74
|
+
this._isChartChanged = false
|
75
|
+
}
|
76
|
+
|
77
|
+
if (this._isDataChanged) {
|
78
|
+
element.data = data
|
79
|
+
this._isDataChanged = false
|
80
|
+
}
|
81
|
+
} catch (e) {
|
82
|
+
error(e)
|
83
|
+
}
|
84
|
+
}
|
85
|
+
|
86
|
+
_setChartConfig(element: OxChart) {
|
87
|
+
var { chart: chartConfig, fontSize = 12, fontFamily, fontColor, shadow } = this.state
|
88
|
+
var { left = 0, top = 0, blurSize = 0, color = 'transparent' } = shadow || {}
|
89
|
+
|
90
|
+
const fontOption = {
|
91
|
+
defaultFontSize: fontSize,
|
92
|
+
defaultFontFamily: fontFamily,
|
93
|
+
defaultFontColor: fontColor
|
94
|
+
}
|
95
|
+
|
96
|
+
const shadowOption = {
|
97
|
+
shadowOffsetX: left,
|
98
|
+
shadowOffsetY: top,
|
99
|
+
shadowBlur: blurSize,
|
100
|
+
shadowColor: color
|
101
|
+
}
|
102
|
+
|
103
|
+
var cloneChartConf = cloneDeep(chartConfig)
|
104
|
+
|
105
|
+
cloneChartConf.options = {
|
106
|
+
...cloneChartConf.options,
|
107
|
+
...fontOption
|
108
|
+
}
|
109
|
+
|
110
|
+
cloneChartConf.data.datasets = cloneChartConf.data.datasets.map((dataset: any) => {
|
111
|
+
return {
|
112
|
+
...dataset,
|
113
|
+
...shadowOption
|
114
|
+
}
|
115
|
+
})
|
116
|
+
|
117
|
+
element.options = cloneChartConf
|
118
|
+
}
|
119
|
+
|
120
|
+
onchange(after: Properties, before: Properties) {
|
121
|
+
this._isChartChanged = false
|
122
|
+
|
123
|
+
if ('chart' in after || 'fontSize' in after || 'fontFamily' in after || 'fontColor' in after || 'shadow' in after)
|
124
|
+
this._isChartChanged = true
|
125
|
+
|
126
|
+
super.onchange(after, before)
|
127
|
+
}
|
128
|
+
|
129
|
+
onchangeData(data: any) {
|
130
|
+
this._isDataChanged = true
|
131
|
+
}
|
132
|
+
}
|
133
|
+
|
134
|
+
Component.register('chartjs', ChartJS)
|