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