vislite 1.7.0-alpha.0 → 1.7.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 (186) hide show
  1. package/AUTHORS.txt +6 -6
  2. package/CHANGELOG +13 -3
  3. package/LICENSE +20 -20
  4. package/README.md +1 -49
  5. package/lib/BarLayout/index.es.js +1 -1
  6. package/lib/BarLayout/index.es.min.js +1 -1
  7. package/lib/Buffer/index.es.js +1 -1
  8. package/lib/Buffer/index.es.min.js +1 -1
  9. package/lib/Canvas/index.es.js +1 -1
  10. package/lib/Canvas/index.es.min.js +1 -1
  11. package/lib/Cardinal/index.es.js +1 -1
  12. package/lib/Cardinal/index.es.min.js +1 -1
  13. package/lib/Eoap/index.es.js +1 -1
  14. package/lib/Eoap/index.es.min.js +1 -1
  15. package/lib/Hermite/index.es.js +1 -1
  16. package/lib/Hermite/index.es.min.js +1 -1
  17. package/lib/MapCoordinate/index.es.js +1 -1
  18. package/lib/MapCoordinate/index.es.min.js +1 -1
  19. package/lib/Matrix4/index.es.js +1 -1
  20. package/lib/Matrix4/index.es.min.js +1 -1
  21. package/lib/Mercator/index.es.js +1 -1
  22. package/lib/Mercator/index.es.min.js +1 -1
  23. package/lib/PieLayout/index.es.js +1 -1
  24. package/lib/PieLayout/index.es.min.js +1 -1
  25. package/lib/RawCanvas/index.es.js +1 -1
  26. package/lib/RawCanvas/index.es.min.js +1 -1
  27. package/lib/SVG/index.es.js +91 -2
  28. package/lib/SVG/index.es.min.js +2 -2
  29. package/lib/Shader/index.es.js +1 -1
  30. package/lib/Shader/index.es.min.js +1 -1
  31. package/lib/Texture/index.es.js +1 -1
  32. package/lib/Texture/index.es.min.js +1 -1
  33. package/lib/TreeLayout/index.es.js +1 -1
  34. package/lib/TreeLayout/index.es.min.js +1 -1
  35. package/lib/animation/index.es.js +1 -1
  36. package/lib/animation/index.es.min.js +1 -1
  37. package/lib/assemble/index.es.js +1 -1
  38. package/lib/assemble/index.es.min.js +1 -1
  39. package/lib/getLoopColors/index.es.js +1 -1
  40. package/lib/getLoopColors/index.es.min.js +1 -1
  41. package/lib/getWebGLContext/index.es.js +1 -1
  42. package/lib/getWebGLContext/index.es.min.js +1 -1
  43. package/lib/index.umd.js +91 -2
  44. package/lib/index.umd.min.js +3 -3
  45. package/lib/initOption/index.es.js +1 -1
  46. package/lib/initOption/index.es.min.js +1 -1
  47. package/lib/mergeOption/index.es.js +1 -1
  48. package/lib/mergeOption/index.es.min.js +1 -1
  49. package/lib/move/index.es.js +1 -1
  50. package/lib/move/index.es.min.js +1 -1
  51. package/lib/rotate/index.es.js +1 -1
  52. package/lib/rotate/index.es.min.js +1 -1
  53. package/lib/ruler/index.es.js +1 -1
  54. package/lib/ruler/index.es.min.js +1 -1
  55. package/lib/scale/index.es.js +1 -1
  56. package/lib/scale/index.es.min.js +1 -1
  57. package/lib/throttle/index.es.js +1 -1
  58. package/lib/throttle/index.es.min.js +1 -1
  59. package/minialipay/ui-canvas/drawImage.js +35 -35
  60. package/minialipay/ui-canvas/index.acss +4 -4
  61. package/minialipay/ui-canvas/index.axml +3 -3
  62. package/minialipay/ui-canvas/index.d.ts +1 -1
  63. package/minialipay/ui-canvas/index.js +100 -100
  64. package/minialipay/ui-canvas/index.json +6 -6
  65. package/miniprogram/ui-canvas/drawImage.js +35 -35
  66. package/miniprogram/ui-canvas/index.js +125 -125
  67. package/miniprogram/ui-canvas/index.json +4 -4
  68. package/miniprogram/ui-canvas/index.wxml +4 -4
  69. package/miniprogram/ui-canvas/index.wxss +5 -5
  70. package/package/BarLayout/index.ts +2 -2
  71. package/package/Buffer/index.ts +2 -2
  72. package/package/Canvas/index.ts +2 -2
  73. package/package/Cardinal/index.ts +2 -2
  74. package/package/Eoap/index.ts +2 -2
  75. package/package/Hermite/index.ts +2 -2
  76. package/package/MapCoordinate/index.ts +2 -2
  77. package/package/Matrix4/index.ts +2 -2
  78. package/package/Mercator/index.ts +2 -2
  79. package/package/PieLayout/index.ts +2 -2
  80. package/package/RawCanvas/index.ts +2 -2
  81. package/package/SVG/index.ts +2 -2
  82. package/package/Shader/index.ts +2 -2
  83. package/package/Texture/index.ts +2 -2
  84. package/package/TreeLayout/index.ts +2 -2
  85. package/package/animation/index.ts +5 -5
  86. package/package/assemble/index.ts +2 -2
  87. package/package/getLoopColors/index.ts +2 -2
  88. package/package/getWebGLContext/index.ts +40 -40
  89. package/package/index.ts +84 -84
  90. package/package/initOption/index.ts +2 -2
  91. package/package/mergeOption/index.ts +2 -2
  92. package/package/move/index.ts +2 -2
  93. package/package/rotate/index.ts +2 -2
  94. package/package/ruler/index.ts +2 -2
  95. package/package/scale/index.ts +2 -2
  96. package/package/throttle/index.ts +2 -2
  97. package/package.json +1 -1
  98. package/src/Canvas.ts +89 -89
  99. package/src/Eoap.ts +66 -66
  100. package/src/Matrix4/index.ts +84 -84
  101. package/src/Matrix4/move.ts +12 -12
  102. package/src/Matrix4/rotate.ts +15 -15
  103. package/src/Matrix4/scale.ts +11 -11
  104. package/src/Matrix4/transform.ts +64 -64
  105. package/src/Mercator.ts +27 -27
  106. package/src/SVG.ts +55 -55
  107. package/src/common/assemble.ts +22 -22
  108. package/src/common/canvas/arc.ts +51 -51
  109. package/src/common/canvas/config.ts +176 -176
  110. package/src/common/canvas/default.ts +64 -64
  111. package/src/common/canvas/gradient.ts +31 -31
  112. package/src/common/canvas/index.ts +188 -188
  113. package/src/common/canvas/painter.ts +453 -453
  114. package/src/common/canvas/texts.ts +18 -18
  115. package/src/common/map/getBoundary.ts +15 -15
  116. package/src/common/map/tool.ts +29 -29
  117. package/src/common/option.ts +29 -29
  118. package/src/common/setStyle.ts +5 -5
  119. package/src/common/svg/config.ts +213 -213
  120. package/src/common/svg/default.ts +29 -29
  121. package/src/common/svg/gradient.ts +53 -53
  122. package/src/common/svg/index.ts +89 -2
  123. package/src/common/svg/tool.ts +51 -51
  124. package/src/common/tree/index.ts +25 -25
  125. package/src/common/tree/toInnerTree.ts +61 -61
  126. package/src/common/tree/toPlainTree.ts +135 -135
  127. package/src/common/type.ts +26 -26
  128. package/src/common/webgl/buffer.ts +79 -79
  129. package/src/common/webgl/getWebGLContext.ts +45 -45
  130. package/src/common/webgl/shader.ts +75 -75
  131. package/src/common/webgl/texture.ts +98 -98
  132. package/src/coordinate/MapCoordinate.ts +80 -80
  133. package/src/getLoopColors.ts +42 -42
  134. package/src/interpolation/Cardinal.ts +110 -110
  135. package/src/interpolation/Hermite.ts +65 -65
  136. package/src/layout/BarLayout.ts +249 -249
  137. package/src/layout/PieLayout.ts +144 -144
  138. package/src/layout/TreeLayout.ts +200 -200
  139. package/src/move.ts +7 -7
  140. package/src/rotate.ts +7 -7
  141. package/src/ruler.ts +209 -209
  142. package/src/scale.ts +6 -6
  143. package/types/Bar.d.ts +91 -91
  144. package/types/BarConfig.d.ts +4 -4
  145. package/types/BarLayout.d.ts +48 -48
  146. package/types/BarOption.d.ts +31 -31
  147. package/types/Buffer.d.ts +23 -23
  148. package/types/Canvas.d.ts +375 -375
  149. package/types/CanvasConfig.d.ts +88 -88
  150. package/types/CanvasOption.d.ts +13 -13
  151. package/types/CanvasOpts.d.ts +9 -9
  152. package/types/Cardinal.d.ts +13 -13
  153. package/types/Gradient.d.ts +14 -14
  154. package/types/Hermite.d.ts +18 -18
  155. package/types/Map.d.ts +9 -9
  156. package/types/MapConfig.d.ts +27 -27
  157. package/types/MapCoordinate.d.ts +22 -22
  158. package/types/Matrix4.d.ts +47 -47
  159. package/types/Pie.d.ts +73 -73
  160. package/types/PieConfig.d.ts +26 -26
  161. package/types/PieLayout.d.ts +40 -40
  162. package/types/PieOption.d.ts +21 -21
  163. package/types/SVG.d.ts +31 -0
  164. package/types/SVGConfig.d.ts +71 -71
  165. package/types/Shader.d.ts +16 -16
  166. package/types/Texture.d.ts +16 -16
  167. package/types/Tree.d.ts +74 -74
  168. package/types/TreeConfig.d.ts +36 -36
  169. package/types/TreeLayout.d.ts +59 -59
  170. package/types/TreeOption.d.ts +48 -48
  171. package/types/animation.d.ts +11 -11
  172. package/types/assemble.d.ts +5 -5
  173. package/types/getLoopColors.d.ts +5 -5
  174. package/types/getWebGLContext.d.ts +7 -7
  175. package/types/index.d.ts +195 -195
  176. package/types/move.d.ts +5 -5
  177. package/types/option.d.ts +12 -12
  178. package/types/painterConfig.d.ts +4 -4
  179. package/types/rotate.d.ts +5 -5
  180. package/types/ruler.d.ts +10 -10
  181. package/types/scale.d.ts +5 -5
  182. package/types/throttle.d.ts +5 -5
  183. package/types/ui-canvas.d.ts +4 -4
  184. package/types/uni-canvas.d.ts +3 -3
  185. package/uni-app/drawImage.js +19 -19
  186. package/uni-app/ui-canvas.vue +295 -295
@@ -1,145 +1,145 @@
1
- import type PieLayoutType from '../../types/PieLayout'
2
- import type { PieResultType } from '../../types/Pie'
3
- import type PieOptionType from '../../types/PieOption'
4
- import type { default as PieConfigType, nameType, valueType } from '../../types/PieConfig'
5
-
6
- import { initOption } from '../common/option'
7
- import rotate from '../rotate'
8
- import { animation } from "oipage/web/animation/index"
9
-
10
- class PieLayout implements PieLayoutType {
11
- readonly name: string = 'PieLayout'
12
-
13
- private __config: PieConfigType
14
-
15
- constructor(config: PieConfigType = {}) {
16
- this.__config = initOption(config, {
17
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
18
- name: (pieData: any, initPie: Array<any>) => pieData.name,
19
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
20
- value: (pieData: any, initPie: Array<any>) => pieData.value
21
- })
22
- }
23
-
24
- private __option = {
25
- cx: 200,
26
- cy: 200,
27
- radius: [50, 100],
28
- duration: 200,
29
- }
30
-
31
- setOption(option: PieOptionType) {
32
- initOption(option, this.__option)
33
- return this
34
- }
35
-
36
- private __rback: (pie: PieResultType) => void
37
- private __oralPie: any
38
- private __prePie: PieResultType | null
39
-
40
- private __hoverIndex = -1 // 表示当前悬浮的序号
41
-
42
- use(initPie: Array<any>, hoverIndex: number = -1) {
43
- const pie: PieResultType = {
44
- count: initPie.length,
45
- cx: this.__option.cx,
46
- cy: this.__option.cy,
47
- radius: this.__option.radius,
48
- hoverIndex,
49
- node: []
50
- }
51
-
52
- let totalValue = 0
53
- const names = [], values = []
54
- for (let i = 0; i < initPie.length; i++) {
55
- names[i] = (this.__config.name as nameType)(initPie[i], initPie)
56
- values[i] = (this.__config.value as valueType)(initPie[i], initPie)
57
-
58
- totalValue += values[i]
59
- }
60
-
61
- let beginDeg = Math.PI * -0.5, currenDeg
62
- for (let i = 0; i < initPie.length; i++) {
63
- currenDeg = values[i] / totalValue * Math.PI * 2
64
- const radius = [this.__option.radius[0], this.__option.radius[1] * (1 + (hoverIndex === i ? 0.05 : 0))]
65
-
66
- const pdeg = beginDeg + currenDeg * 0.5, pradius = Math.max(this.__option.radius[0], this.__option.radius[1])
67
- const p0 = rotate(pie.cx, pie.cy, pdeg, pie.cx + pradius, pie.cy)
68
- const p1 = rotate(pie.cx, pie.cy, pdeg, pie.cx + pradius + 15, pie.cy)
69
-
70
- const pflag = p0[0] > pie.cx ? 1 : -1
71
- const p2 = [p1[0] + pflag * 20, p1[1]]
72
- const p3 = [p1[0] + pflag * 25, p1[1]]
73
-
74
- pie.node[i] = {
75
- value: values[i],
76
- name: names[i],
77
- beginDeg,
78
- deg: currenDeg,
79
- isHover: hoverIndex === i,
80
- radius,
81
- label: {
82
- line: [p0, p1, p2],
83
- position: p3,
84
- align: pflag === -1 ? "right" : "left"
85
- }
86
- }
87
-
88
- beginDeg += currenDeg
89
- }
90
-
91
- return pie
92
- }
93
-
94
- bind(initPie: Array<any>, renderBack: (pie: PieResultType) => void) {
95
- this.__rback = renderBack
96
- this.__oralPie = initPie
97
-
98
- this.__prePie = this.use(this.__oralPie, this.__hoverIndex)
99
- this.__rback(this.__prePie)
100
-
101
- return this
102
- }
103
-
104
- unbind() {
105
- this.__rback = () => null
106
- this.__oralPie = null
107
- this.__prePie = null
108
- this.__hoverIndex = -1
109
- return this
110
- }
111
-
112
- setHover(index: number) {
113
- if (!this.__prePie || this.__hoverIndex === index) return this
114
-
115
- this.__hoverIndex = index
116
-
117
- this.doUpdate()
118
- return this
119
- }
120
-
121
- doUpdate() {
122
- const newPie = this.use(this.__oralPie, this.__hoverIndex)
123
-
124
- const cachePie = JSON.parse(JSON.stringify(newPie))
125
-
126
- animation((deep) => {
127
-
128
- if (this.__prePie) {
129
- for (let i = 0; i < cachePie.count; i++) {
130
- cachePie.node[i].radius[1] = this.__prePie.node[i].radius[1] + (newPie.node[i].radius[1] - this.__prePie.node[i].radius[1]) * deep
131
- }
132
- }
133
-
134
- this.__rback(cachePie)
135
-
136
- }, this.__option.duration, () => {
137
- this.__prePie = newPie
138
- this.__rback(this.__prePie)
139
- })
140
-
141
- return this
142
- }
143
- }
144
-
1
+ import type PieLayoutType from '../../types/PieLayout'
2
+ import type { PieResultType } from '../../types/Pie'
3
+ import type PieOptionType from '../../types/PieOption'
4
+ import type { default as PieConfigType, nameType, valueType } from '../../types/PieConfig'
5
+
6
+ import { initOption } from '../common/option'
7
+ import rotate from '../rotate'
8
+ import { animation } from "oipage/web/animation/index"
9
+
10
+ class PieLayout implements PieLayoutType {
11
+ readonly name: string = 'PieLayout'
12
+
13
+ private __config: PieConfigType
14
+
15
+ constructor(config: PieConfigType = {}) {
16
+ this.__config = initOption(config, {
17
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
18
+ name: (pieData: any, initPie: Array<any>) => pieData.name,
19
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
20
+ value: (pieData: any, initPie: Array<any>) => pieData.value
21
+ })
22
+ }
23
+
24
+ private __option = {
25
+ cx: 200,
26
+ cy: 200,
27
+ radius: [50, 100],
28
+ duration: 200,
29
+ }
30
+
31
+ setOption(option: PieOptionType) {
32
+ initOption(option, this.__option)
33
+ return this
34
+ }
35
+
36
+ private __rback: (pie: PieResultType) => void
37
+ private __oralPie: any
38
+ private __prePie: PieResultType | null
39
+
40
+ private __hoverIndex = -1 // 表示当前悬浮的序号
41
+
42
+ use(initPie: Array<any>, hoverIndex: number = -1) {
43
+ const pie: PieResultType = {
44
+ count: initPie.length,
45
+ cx: this.__option.cx,
46
+ cy: this.__option.cy,
47
+ radius: this.__option.radius,
48
+ hoverIndex,
49
+ node: []
50
+ }
51
+
52
+ let totalValue = 0
53
+ const names = [], values = []
54
+ for (let i = 0; i < initPie.length; i++) {
55
+ names[i] = (this.__config.name as nameType)(initPie[i], initPie)
56
+ values[i] = (this.__config.value as valueType)(initPie[i], initPie)
57
+
58
+ totalValue += values[i]
59
+ }
60
+
61
+ let beginDeg = Math.PI * -0.5, currenDeg
62
+ for (let i = 0; i < initPie.length; i++) {
63
+ currenDeg = values[i] / totalValue * Math.PI * 2
64
+ const radius = [this.__option.radius[0], this.__option.radius[1] * (1 + (hoverIndex === i ? 0.05 : 0))]
65
+
66
+ const pdeg = beginDeg + currenDeg * 0.5, pradius = Math.max(this.__option.radius[0], this.__option.radius[1])
67
+ const p0 = rotate(pie.cx, pie.cy, pdeg, pie.cx + pradius, pie.cy)
68
+ const p1 = rotate(pie.cx, pie.cy, pdeg, pie.cx + pradius + 15, pie.cy)
69
+
70
+ const pflag = p0[0] > pie.cx ? 1 : -1
71
+ const p2 = [p1[0] + pflag * 20, p1[1]]
72
+ const p3 = [p1[0] + pflag * 25, p1[1]]
73
+
74
+ pie.node[i] = {
75
+ value: values[i],
76
+ name: names[i],
77
+ beginDeg,
78
+ deg: currenDeg,
79
+ isHover: hoverIndex === i,
80
+ radius,
81
+ label: {
82
+ line: [p0, p1, p2],
83
+ position: p3,
84
+ align: pflag === -1 ? "right" : "left"
85
+ }
86
+ }
87
+
88
+ beginDeg += currenDeg
89
+ }
90
+
91
+ return pie
92
+ }
93
+
94
+ bind(initPie: Array<any>, renderBack: (pie: PieResultType) => void) {
95
+ this.__rback = renderBack
96
+ this.__oralPie = initPie
97
+
98
+ this.__prePie = this.use(this.__oralPie, this.__hoverIndex)
99
+ this.__rback(this.__prePie)
100
+
101
+ return this
102
+ }
103
+
104
+ unbind() {
105
+ this.__rback = () => null
106
+ this.__oralPie = null
107
+ this.__prePie = null
108
+ this.__hoverIndex = -1
109
+ return this
110
+ }
111
+
112
+ setHover(index: number) {
113
+ if (!this.__prePie || this.__hoverIndex === index) return this
114
+
115
+ this.__hoverIndex = index
116
+
117
+ this.doUpdate()
118
+ return this
119
+ }
120
+
121
+ doUpdate() {
122
+ const newPie = this.use(this.__oralPie, this.__hoverIndex)
123
+
124
+ const cachePie = JSON.parse(JSON.stringify(newPie))
125
+
126
+ animation((deep) => {
127
+
128
+ if (this.__prePie) {
129
+ for (let i = 0; i < cachePie.count; i++) {
130
+ cachePie.node[i].radius[1] = this.__prePie.node[i].radius[1] + (newPie.node[i].radius[1] - this.__prePie.node[i].radius[1]) * deep
131
+ }
132
+ }
133
+
134
+ this.__rback(cachePie)
135
+
136
+ }, this.__option.duration, () => {
137
+ this.__prePie = newPie
138
+ this.__rback(this.__prePie)
139
+ })
140
+
141
+ return this
142
+ }
143
+ }
144
+
145
145
  export default PieLayout