vislite 1.4.0-alpha.0 → 1.4.0

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.
Files changed (83) hide show
  1. package/CHANGELOG +307 -307
  2. package/lib/BarLayout/index.es.js +437 -437
  3. package/lib/BarLayout/index.es.min.js +2 -2
  4. package/lib/Buffer/index.es.js +35 -35
  5. package/lib/Buffer/index.es.min.js +1 -1
  6. package/lib/Canvas/index.es.js +774 -774
  7. package/lib/Canvas/index.es.min.js +1 -1
  8. package/lib/Cardinal/index.es.js +90 -90
  9. package/lib/Cardinal/index.es.min.js +1 -1
  10. package/lib/Eoap/index.es.js +33 -33
  11. package/lib/Eoap/index.es.min.js +1 -1
  12. package/lib/Hermite/index.es.js +35 -35
  13. package/lib/Hermite/index.es.min.js +1 -1
  14. package/lib/MapCoordinate/index.es.js +199 -199
  15. package/lib/MapCoordinate/index.es.min.js +1 -1
  16. package/lib/Matrix4/index.es.js +124 -124
  17. package/lib/Matrix4/index.es.min.js +1 -1
  18. package/lib/Mercator/index.es.js +19 -19
  19. package/lib/Mercator/index.es.min.js +1 -1
  20. package/lib/PieLayout/index.es.js +213 -213
  21. package/lib/PieLayout/index.es.min.js +2 -2
  22. package/lib/RawCanvas/index.es.js +704 -704
  23. package/lib/RawCanvas/index.es.min.js +1 -1
  24. package/lib/SVG/index.es.js +514 -514
  25. package/lib/SVG/index.es.min.js +1 -1
  26. package/lib/Shader/index.es.js +35 -35
  27. package/lib/Shader/index.es.min.js +1 -1
  28. package/lib/Texture/index.es.js +53 -53
  29. package/lib/Texture/index.es.min.js +1 -1
  30. package/lib/TreeLayout/index.es.js +397 -397
  31. package/lib/TreeLayout/index.es.min.js +2 -2
  32. package/lib/animation/index.es.js +110 -106
  33. package/lib/animation/index.es.min.js +3 -3
  34. package/lib/assemble/index.es.js +17 -17
  35. package/lib/assemble/index.es.min.js +1 -1
  36. package/lib/getLoopColors/index.es.js +35 -35
  37. package/lib/getLoopColors/index.es.min.js +1 -1
  38. package/lib/getWebGLContext/index.es.js +62 -62
  39. package/lib/getWebGLContext/index.es.min.js +1 -1
  40. package/lib/index.umd.js +2795 -2791
  41. package/lib/index.umd.min.js +5 -5
  42. package/lib/initOption/index.es.js +6 -6
  43. package/lib/initOption/index.es.min.js +1 -1
  44. package/lib/mergeOption/index.es.js +34 -34
  45. package/lib/mergeOption/index.es.min.js +1 -1
  46. package/lib/move/index.es.js +7 -7
  47. package/lib/move/index.es.min.js +1 -1
  48. package/lib/rotate/index.es.js +7 -7
  49. package/lib/rotate/index.es.min.js +1 -1
  50. package/lib/ruler/index.es.js +137 -137
  51. package/lib/ruler/index.es.min.js +1 -1
  52. package/lib/scale/index.es.js +6 -6
  53. package/lib/scale/index.es.min.js +1 -1
  54. package/lib/throttle/index.es.js +51 -51
  55. package/lib/throttle/index.es.min.js +2 -2
  56. package/package/BarLayout/index.ts +2 -2
  57. package/package/PieLayout/index.ts +2 -2
  58. package/package/animation/index.ts +6 -3
  59. package/package/index.ts +84 -84
  60. package/package/throttle/index.ts +2 -2
  61. package/package.json +75 -75
  62. package/src/SVG.ts +55 -55
  63. package/src/common/canvas/gradient.ts +31 -31
  64. package/src/common/svg/default.ts +29 -29
  65. package/src/common/svg/gradient.ts +53 -53
  66. package/src/common/svg/index.ts +332 -332
  67. package/src/common/tree/toPlainTree.ts +135 -135
  68. package/src/common/webgl/texture.ts +98 -98
  69. package/src/layout/BarLayout.ts +248 -248
  70. package/src/layout/PieLayout.ts +141 -141
  71. package/src/layout/TreeLayout.ts +197 -197
  72. package/types/Bar.d.ts +91 -91
  73. package/types/BarConfig.d.ts +4 -4
  74. package/types/BarLayout.d.ts +48 -48
  75. package/types/BarOption.d.ts +31 -31
  76. package/types/Pie.d.ts +73 -73
  77. package/types/PieConfig.d.ts +26 -26
  78. package/types/PieLayout.d.ts +40 -40
  79. package/types/PieOption.d.ts +21 -21
  80. package/types/SVG.d.ts +247 -247
  81. package/types/animation.d.ts +11 -5
  82. package/types/index.d.ts +195 -195
  83. package/types/throttle.d.ts +5 -5
@@ -1,249 +1,249 @@
1
- import type BarLayoutType from '../../types/BarLayout'
2
- import type { BarResultType } from '../../types/Bar'
3
- import type BarOptionType from '../../types/BarOption'
4
- import type BarConfigType from '../../types/BarConfig'
5
-
6
- import { initOption } from '../common/option'
7
- import ruler from '../ruler'
8
- import { animation } from "oipage/web/animation/index"
9
-
10
- class BarLayout implements BarLayoutType {
11
- readonly name: string = 'BarLayout'
12
-
13
- private __config: BarConfigType
14
-
15
- constructor(config: BarConfigType = {}) {
16
- this.__config = initOption(config, {
17
-
18
- })
19
- }
20
-
21
- private __option = {
22
- x: 50,
23
- y: 350,
24
- width: 400,
25
- height: 300,
26
- category: "xAxis",
27
- duration: 200
28
- }
29
-
30
- setOption(option: BarOptionType) {
31
- initOption(option, this.__option)
32
- return this
33
- }
34
-
35
- private __rback: (bar: BarResultType) => void
36
- private __oralBar: any
37
- private __preBar: BarResultType | null
38
-
39
- use(initBar: any) {
40
- let bar: BarResultType = {
41
- coordinate: {
42
- x: this.__option.x,
43
- y: this.__option.y,
44
- width: this.__option.width,
45
- height: this.__option.height,
46
- xAxis: {
47
- type: this.__option.category === "xAxis" ? "category" : "value",
48
- data: []
49
- },
50
- yAxis: {
51
- type: this.__option.category === "xAxis" ? "value" : "category",
52
- data: []
53
- }
54
- },
55
- node: []
56
- }
57
-
58
- let maxValue = void 0, minValue = void 0
59
-
60
- // 求解一维最值
61
- if (initBar.data) {
62
- for (let val of initBar.data) {
63
- if (maxValue === void 0 || val > maxValue) maxValue = val
64
- if (minValue === void 0 || val < minValue) minValue = val
65
- }
66
- }
67
-
68
- // 求解二维最值
69
- else if (initBar.value) {
70
- for (let item of initBar.value) {
71
- for (let val of item.data) {
72
- if (maxValue === void 0 || val > maxValue) maxValue = val
73
- if (minValue === void 0 || val < minValue) minValue = val
74
- }
75
- }
76
- } else {
77
- throw new Error('No data leads to parsing errors')
78
- }
79
-
80
- let rulerArray = ruler(maxValue || 0, minValue || 0, 5)
81
-
82
- let categoryLen // 分类轴长度
83
- let valueLen // 数值轴长度
84
-
85
- if (this.__option.category === "xAxis") {
86
-
87
- // 设置刻度尺刻度
88
- bar.coordinate.xAxis.data = initBar.category
89
- bar.coordinate.yAxis.data = rulerArray
90
-
91
- // 设置轴长度
92
- categoryLen = this.__option.width
93
- valueLen = -1 * this.__option.height
94
- } else {
95
- bar.coordinate.xAxis.data = rulerArray
96
- bar.coordinate.yAxis.data = initBar.category
97
- categoryLen = this.__option.height
98
- valueLen = this.__option.width
99
- }
100
-
101
- // 求解分类轴刻度
102
- let category: any = []
103
-
104
- // 一维
105
- let categorySingle1Width = categoryLen / initBar.category.length
106
- let categorySingle2Width = categorySingle1Width * 0.9
107
- let categoryStart = categorySingle1Width * 0.05
108
- if (initBar.data) {
109
- for (let i = 0; i < initBar.data.length; i++) {
110
- category.push([
111
- categoryStart + categorySingle1Width * i,
112
- categorySingle2Width
113
- ])
114
- }
115
- }
116
-
117
- // 二维
118
- else {
119
- let categorySingle3Width = categorySingle2Width / initBar.value.length
120
- let categorySingle4Width = categorySingle3Width * 0.9
121
- let categoryStartBlance = categorySingle3Width * 0.05
122
- for (let i = 0; i < initBar.value[0].data.length; i++) {
123
- category[i] = []
124
- for (let j = 0; j < initBar.value.length; j++) {
125
- category[i].push([
126
- categoryStart + categorySingle1Width * i + categorySingle3Width * j + categoryStartBlance,
127
- categorySingle4Width
128
- ])
129
- }
130
- }
131
- }
132
-
133
- // 根据值获取长度
134
- let singleValueLen = valueLen / (rulerArray[rulerArray.length - 1] - rulerArray[0])
135
- let getLenByValue = (value: number) => {
136
- return singleValueLen * (value - rulerArray[0])
137
- }
138
-
139
- // 计算小矩形
140
- if (this.__option.category === "xAxis") { // 分类在x轴,从左到右
141
- if (initBar.data) {
142
- let nodeBar = []
143
- for (let i = 0; i < initBar.data.length; i++) {
144
- nodeBar.push({
145
- x: this.__option.x + category[i][0],
146
- y: this.__option.y,
147
- width: category[i][1],
148
- height: getLenByValue(initBar.data[i]),
149
- value: initBar.data[i]
150
- })
151
- }
152
- bar.node.push({
153
- bar: nodeBar
154
- })
155
- } else {
156
- for (let j = 0; j < initBar.value.length; j++) {
157
- let nodeBar = []
158
- for (let i = 0; i < initBar.value[j].data.length; i++) {
159
- nodeBar.push({
160
- x: this.__option.x + category[i][j][0],
161
- y: this.__option.y,
162
- width: category[i][j][1],
163
- height: getLenByValue(initBar.value[j].data[i]),
164
- value: initBar.value[j].data[i]
165
- })
166
- }
167
- bar.node.push({
168
- name: initBar.value[j].name,
169
- bar: nodeBar
170
- })
171
- }
172
- }
173
- } else { // 分类在y轴,从上到下
174
- if (initBar.data) {
175
- let nodeBar = []
176
- for (let i = 0; i < initBar.data.length; i++) {
177
- nodeBar.push({
178
- x: this.__option.x,
179
- y: this.__option.y - this.__option.height + category[i][0],
180
- width: getLenByValue(initBar.data[i]),
181
- height: category[i][1],
182
- value: initBar.data[i]
183
- })
184
- }
185
- bar.node.push({
186
- bar: nodeBar
187
- })
188
- } else {
189
- for (let j = 0; j < initBar.value.length; j++) {
190
- let nodeBar = []
191
- for (let i = 0; i < initBar.value[j].data.length; i++) {
192
- nodeBar.push({
193
- x: this.__option.x,
194
- y: this.__option.y - this.__option.height + category[i][j][0],
195
- width: getLenByValue(initBar.value[j].data[i]),
196
- height: category[i][j][1],
197
- value: initBar.value[j].data[i]
198
- })
199
- }
200
- bar.node.push({
201
- name: initBar.value[j].name,
202
- bar: nodeBar
203
- })
204
- }
205
- }
206
- }
207
-
208
- return bar
209
- }
210
-
211
- bind(initBar: any, renderBack: (bar: BarResultType) => void) {
212
- this.__rback = renderBack
213
- this.__oralBar = initBar
214
-
215
- this.__preBar = this.use(this.__oralBar)
216
- this.__rback(this.__preBar)
217
-
218
- return this
219
- }
220
-
221
- unbind() {
222
- this.__rback = () => null
223
- this.__oralBar = null
224
- this.__preBar = null
225
- return this
226
- }
227
-
228
- doUpdate() {
229
- const newBar = this.use(this.__oralBar)
230
-
231
- const cacheBar = JSON.parse(JSON.stringify(newBar))
232
-
233
- animation((deep) => {
234
-
235
- if (this.__preBar) {
236
- // todo
237
- }
238
-
239
- this.__rback(cacheBar)
240
-
241
- }, this.__option.duration, () => {
242
- this.__preBar = newBar
243
- this.__rback(this.__preBar)
244
- })
245
- return this
246
- }
247
- }
248
-
1
+ import type BarLayoutType from '../../types/BarLayout'
2
+ import type { BarResultType } from '../../types/Bar'
3
+ import type BarOptionType from '../../types/BarOption'
4
+ import type BarConfigType from '../../types/BarConfig'
5
+
6
+ import { initOption } from '../common/option'
7
+ import ruler from '../ruler'
8
+ import { animation } from "oipage/web/animation/index"
9
+
10
+ class BarLayout implements BarLayoutType {
11
+ readonly name: string = 'BarLayout'
12
+
13
+ private __config: BarConfigType
14
+
15
+ constructor(config: BarConfigType = {}) {
16
+ this.__config = initOption(config, {
17
+
18
+ })
19
+ }
20
+
21
+ private __option = {
22
+ x: 50,
23
+ y: 350,
24
+ width: 400,
25
+ height: 300,
26
+ category: "xAxis",
27
+ duration: 200
28
+ }
29
+
30
+ setOption(option: BarOptionType) {
31
+ initOption(option, this.__option)
32
+ return this
33
+ }
34
+
35
+ private __rback: (bar: BarResultType) => void
36
+ private __oralBar: any
37
+ private __preBar: BarResultType | null
38
+
39
+ use(initBar: any) {
40
+ let bar: BarResultType = {
41
+ coordinate: {
42
+ x: this.__option.x,
43
+ y: this.__option.y,
44
+ width: this.__option.width,
45
+ height: this.__option.height,
46
+ xAxis: {
47
+ type: this.__option.category === "xAxis" ? "category" : "value",
48
+ data: []
49
+ },
50
+ yAxis: {
51
+ type: this.__option.category === "xAxis" ? "value" : "category",
52
+ data: []
53
+ }
54
+ },
55
+ node: []
56
+ }
57
+
58
+ let maxValue = void 0, minValue = void 0
59
+
60
+ // 求解一维最值
61
+ if (initBar.data) {
62
+ for (let val of initBar.data) {
63
+ if (maxValue === void 0 || val > maxValue) maxValue = val
64
+ if (minValue === void 0 || val < minValue) minValue = val
65
+ }
66
+ }
67
+
68
+ // 求解二维最值
69
+ else if (initBar.value) {
70
+ for (let item of initBar.value) {
71
+ for (let val of item.data) {
72
+ if (maxValue === void 0 || val > maxValue) maxValue = val
73
+ if (minValue === void 0 || val < minValue) minValue = val
74
+ }
75
+ }
76
+ } else {
77
+ throw new Error('No data leads to parsing errors')
78
+ }
79
+
80
+ let rulerArray = ruler(maxValue || 0, minValue || 0, 5)
81
+
82
+ let categoryLen // 分类轴长度
83
+ let valueLen // 数值轴长度
84
+
85
+ if (this.__option.category === "xAxis") {
86
+
87
+ // 设置刻度尺刻度
88
+ bar.coordinate.xAxis.data = initBar.category
89
+ bar.coordinate.yAxis.data = rulerArray
90
+
91
+ // 设置轴长度
92
+ categoryLen = this.__option.width
93
+ valueLen = -1 * this.__option.height
94
+ } else {
95
+ bar.coordinate.xAxis.data = rulerArray
96
+ bar.coordinate.yAxis.data = initBar.category
97
+ categoryLen = this.__option.height
98
+ valueLen = this.__option.width
99
+ }
100
+
101
+ // 求解分类轴刻度
102
+ let category: any = []
103
+
104
+ // 一维
105
+ let categorySingle1Width = categoryLen / initBar.category.length
106
+ let categorySingle2Width = categorySingle1Width * 0.9
107
+ let categoryStart = categorySingle1Width * 0.05
108
+ if (initBar.data) {
109
+ for (let i = 0; i < initBar.data.length; i++) {
110
+ category.push([
111
+ categoryStart + categorySingle1Width * i,
112
+ categorySingle2Width
113
+ ])
114
+ }
115
+ }
116
+
117
+ // 二维
118
+ else {
119
+ let categorySingle3Width = categorySingle2Width / initBar.value.length
120
+ let categorySingle4Width = categorySingle3Width * 0.9
121
+ let categoryStartBlance = categorySingle3Width * 0.05
122
+ for (let i = 0; i < initBar.value[0].data.length; i++) {
123
+ category[i] = []
124
+ for (let j = 0; j < initBar.value.length; j++) {
125
+ category[i].push([
126
+ categoryStart + categorySingle1Width * i + categorySingle3Width * j + categoryStartBlance,
127
+ categorySingle4Width
128
+ ])
129
+ }
130
+ }
131
+ }
132
+
133
+ // 根据值获取长度
134
+ let singleValueLen = valueLen / (rulerArray[rulerArray.length - 1] - rulerArray[0])
135
+ let getLenByValue = (value: number) => {
136
+ return singleValueLen * (value - rulerArray[0])
137
+ }
138
+
139
+ // 计算小矩形
140
+ if (this.__option.category === "xAxis") { // 分类在x轴,从左到右
141
+ if (initBar.data) {
142
+ let nodeBar = []
143
+ for (let i = 0; i < initBar.data.length; i++) {
144
+ nodeBar.push({
145
+ x: this.__option.x + category[i][0],
146
+ y: this.__option.y,
147
+ width: category[i][1],
148
+ height: getLenByValue(initBar.data[i]),
149
+ value: initBar.data[i]
150
+ })
151
+ }
152
+ bar.node.push({
153
+ bar: nodeBar
154
+ })
155
+ } else {
156
+ for (let j = 0; j < initBar.value.length; j++) {
157
+ let nodeBar = []
158
+ for (let i = 0; i < initBar.value[j].data.length; i++) {
159
+ nodeBar.push({
160
+ x: this.__option.x + category[i][j][0],
161
+ y: this.__option.y,
162
+ width: category[i][j][1],
163
+ height: getLenByValue(initBar.value[j].data[i]),
164
+ value: initBar.value[j].data[i]
165
+ })
166
+ }
167
+ bar.node.push({
168
+ name: initBar.value[j].name,
169
+ bar: nodeBar
170
+ })
171
+ }
172
+ }
173
+ } else { // 分类在y轴,从上到下
174
+ if (initBar.data) {
175
+ let nodeBar = []
176
+ for (let i = 0; i < initBar.data.length; i++) {
177
+ nodeBar.push({
178
+ x: this.__option.x,
179
+ y: this.__option.y - this.__option.height + category[i][0],
180
+ width: getLenByValue(initBar.data[i]),
181
+ height: category[i][1],
182
+ value: initBar.data[i]
183
+ })
184
+ }
185
+ bar.node.push({
186
+ bar: nodeBar
187
+ })
188
+ } else {
189
+ for (let j = 0; j < initBar.value.length; j++) {
190
+ let nodeBar = []
191
+ for (let i = 0; i < initBar.value[j].data.length; i++) {
192
+ nodeBar.push({
193
+ x: this.__option.x,
194
+ y: this.__option.y - this.__option.height + category[i][j][0],
195
+ width: getLenByValue(initBar.value[j].data[i]),
196
+ height: category[i][j][1],
197
+ value: initBar.value[j].data[i]
198
+ })
199
+ }
200
+ bar.node.push({
201
+ name: initBar.value[j].name,
202
+ bar: nodeBar
203
+ })
204
+ }
205
+ }
206
+ }
207
+
208
+ return bar
209
+ }
210
+
211
+ bind(initBar: any, renderBack: (bar: BarResultType) => void) {
212
+ this.__rback = renderBack
213
+ this.__oralBar = initBar
214
+
215
+ this.__preBar = this.use(this.__oralBar)
216
+ this.__rback(this.__preBar)
217
+
218
+ return this
219
+ }
220
+
221
+ unbind() {
222
+ this.__rback = () => null
223
+ this.__oralBar = null
224
+ this.__preBar = null
225
+ return this
226
+ }
227
+
228
+ doUpdate() {
229
+ const newBar = this.use(this.__oralBar)
230
+
231
+ const cacheBar = JSON.parse(JSON.stringify(newBar))
232
+
233
+ animation((deep) => {
234
+
235
+ if (this.__preBar) {
236
+ // todo
237
+ }
238
+
239
+ this.__rback(cacheBar)
240
+
241
+ }, this.__option.duration, () => {
242
+ this.__preBar = newBar
243
+ this.__rback(this.__preBar)
244
+ })
245
+ return this
246
+ }
247
+ }
248
+
249
249
  export default BarLayout