vislite 1.12.0 → 1.12.1

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 (179) hide show
  1. package/AUTHORS.txt +6 -6
  2. package/CHANGELOG +408 -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 +17 -17
  8. package/bin/run +21 -21
  9. package/bin/skills.js +26 -26
  10. package/lib/BarLayout/index.es.js +348 -348
  11. package/lib/Buffer/index.es.js +34 -34
  12. package/lib/Canvas/index.es.js +804 -804
  13. package/lib/Cardinal/index.es.js +89 -89
  14. package/lib/Eoap/index.es.js +32 -32
  15. package/lib/Hermite/index.es.js +34 -34
  16. package/lib/MapCoordinate/index.es.js +199 -199
  17. package/lib/Matrix4/index.es.js +123 -123
  18. package/lib/Mercator/index.es.js +18 -18
  19. package/lib/PieLayout/index.es.js +115 -115
  20. package/lib/RawCanvas/index.es.js +736 -736
  21. package/lib/SVG/index.es.js +626 -626
  22. package/lib/Shader/index.es.js +34 -34
  23. package/lib/Texture/index.es.js +52 -52
  24. package/lib/TreeLayout/index.es.js +301 -301
  25. package/lib/animation/index.es.js +2 -2
  26. package/lib/assemble/index.es.js +19 -19
  27. package/lib/getLoopColors/index.es.js +34 -34
  28. package/lib/getWebGLContext/index.es.js +61 -61
  29. package/lib/index.umd.js +2797 -2797
  30. package/lib/index.umd.min.js +1 -1
  31. package/lib/initOption/index.es.js +5 -5
  32. package/lib/mergeOption/index.es.js +34 -34
  33. package/lib/move/index.es.js +6 -6
  34. package/lib/rotate/index.es.js +6 -6
  35. package/lib/ruler/index.es.js +136 -136
  36. package/lib/scale/index.es.js +5 -5
  37. package/minialipay/ui-canvas/drawImage.js +35 -35
  38. package/minialipay/ui-canvas/index.acss +4 -4
  39. package/minialipay/ui-canvas/index.axml +3 -3
  40. package/minialipay/ui-canvas/index.d.ts +1 -1
  41. package/minialipay/ui-canvas/index.js +100 -100
  42. package/minialipay/ui-canvas/index.json +6 -6
  43. package/miniprogram/ui-canvas/drawImage.js +35 -35
  44. package/miniprogram/ui-canvas/index.js +125 -125
  45. package/miniprogram/ui-canvas/index.json +4 -4
  46. package/miniprogram/ui-canvas/index.wxml +4 -4
  47. package/miniprogram/ui-canvas/index.wxss +5 -5
  48. package/package/BarLayout/index.ts +2 -2
  49. package/package/Buffer/index.ts +2 -2
  50. package/package/Canvas/index.ts +2 -2
  51. package/package/Cardinal/index.ts +2 -2
  52. package/package/Eoap/index.ts +2 -2
  53. package/package/Hermite/index.ts +2 -2
  54. package/package/MapCoordinate/index.ts +2 -2
  55. package/package/Matrix4/index.ts +2 -2
  56. package/package/Mercator/index.ts +2 -2
  57. package/package/PieLayout/index.ts +2 -2
  58. package/package/RawCanvas/index.ts +2 -2
  59. package/package/SVG/index.ts +2 -2
  60. package/package/Shader/index.ts +2 -2
  61. package/package/Texture/index.ts +2 -2
  62. package/package/TreeLayout/index.ts +2 -2
  63. package/package/animation/index.ts +5 -5
  64. package/package/assemble/index.ts +2 -2
  65. package/package/getLoopColors/index.ts +2 -2
  66. package/package/getWebGLContext/index.ts +40 -40
  67. package/package/index.ts +84 -84
  68. package/package/initOption/index.ts +2 -2
  69. package/package/mergeOption/index.ts +2 -2
  70. package/package/move/index.ts +2 -2
  71. package/package/rotate/index.ts +2 -2
  72. package/package/ruler/index.ts +2 -2
  73. package/package/scale/index.ts +2 -2
  74. package/package/throttle/index.ts +2 -2
  75. package/package.json +79 -79
  76. package/skills/vislite-lib/BarLayout.md +117 -117
  77. package/skills/vislite-lib/Canvas.md +183 -183
  78. package/skills/vislite-lib/Interpolation.md +129 -129
  79. package/skills/vislite-lib/Matrix.md +174 -174
  80. package/skills/vislite-lib/PieLayout.md +131 -131
  81. package/skills/vislite-lib/Projections.md +158 -158
  82. package/skills/vislite-lib/SKILL.md +179 -179
  83. package/skills/vislite-lib/SVG.md +137 -137
  84. package/skills/vislite-lib/TreeLayout.md +176 -176
  85. package/skills/vislite-lib/Utilities.md +261 -261
  86. package/skills/vislite-lib/WebGL.md +106 -106
  87. package/skills/vislite-lib/minialipay/ui-canvas.md +95 -95
  88. package/skills/vislite-lib/miniprogram/ui-canvas.md +98 -98
  89. package/skills/vislite-lib/uniapp/ui-canvas.md +113 -113
  90. package/src/Canvas.ts +89 -89
  91. package/src/Eoap.ts +66 -66
  92. package/src/Matrix4/index.ts +84 -84
  93. package/src/Matrix4/move.ts +12 -12
  94. package/src/Matrix4/rotate.ts +15 -15
  95. package/src/Matrix4/scale.ts +11 -11
  96. package/src/Matrix4/transform.ts +64 -64
  97. package/src/Mercator.ts +27 -27
  98. package/src/SVG.ts +86 -86
  99. package/src/common/assemble.ts +30 -30
  100. package/src/common/canvas/arc.ts +51 -51
  101. package/src/common/canvas/config.ts +176 -176
  102. package/src/common/canvas/default.ts +64 -64
  103. package/src/common/canvas/gradient.ts +31 -31
  104. package/src/common/canvas/index.ts +189 -189
  105. package/src/common/canvas/painter.ts +475 -475
  106. package/src/common/canvas/texts.ts +18 -18
  107. package/src/common/map/getBoundary.ts +15 -15
  108. package/src/common/map/tool.ts +29 -29
  109. package/src/common/option.ts +31 -31
  110. package/src/common/setStyle.ts +5 -5
  111. package/src/common/svg/config.ts +213 -213
  112. package/src/common/svg/default.ts +29 -29
  113. package/src/common/svg/gradient.ts +53 -53
  114. package/src/common/svg/index.ts +420 -420
  115. package/src/common/svg/tool.ts +51 -51
  116. package/src/common/tree/index.ts +25 -25
  117. package/src/common/tree/toInnerTree.ts +61 -61
  118. package/src/common/tree/toPlainTree.ts +135 -135
  119. package/src/common/type.ts +26 -26
  120. package/src/common/webgl/buffer.ts +79 -79
  121. package/src/common/webgl/getWebGLContext.ts +45 -45
  122. package/src/common/webgl/shader.ts +75 -75
  123. package/src/common/webgl/texture.ts +98 -98
  124. package/src/coordinate/MapCoordinate.ts +80 -80
  125. package/src/getLoopColors.ts +42 -42
  126. package/src/interpolation/Cardinal.ts +110 -110
  127. package/src/interpolation/Hermite.ts +65 -65
  128. package/src/layout/BarLayout.ts +249 -249
  129. package/src/layout/PieLayout.ts +146 -146
  130. package/src/layout/TreeLayout.ts +200 -200
  131. package/src/move.ts +7 -7
  132. package/src/rotate.ts +7 -7
  133. package/src/ruler.ts +209 -209
  134. package/src/scale.ts +6 -6
  135. package/types/Bar.d.ts +91 -91
  136. package/types/BarConfig.d.ts +4 -4
  137. package/types/BarLayout.d.ts +48 -48
  138. package/types/BarOption.d.ts +31 -31
  139. package/types/Buffer.d.ts +30 -30
  140. package/types/Canvas.d.ts +379 -379
  141. package/types/CanvasConfig.d.ts +61 -61
  142. package/types/CanvasOption.d.ts +13 -13
  143. package/types/CanvasOpts.d.ts +9 -9
  144. package/types/Cardinal.d.ts +20 -20
  145. package/types/Gradient.d.ts +20 -20
  146. package/types/Hermite.d.ts +25 -25
  147. package/types/Map.d.ts +9 -9
  148. package/types/MapConfig.d.ts +27 -27
  149. package/types/MapCoordinate.d.ts +22 -22
  150. package/types/Matrix4.d.ts +79 -79
  151. package/types/Pie.d.ts +73 -73
  152. package/types/PieConfig.d.ts +26 -26
  153. package/types/PieLayout.d.ts +40 -40
  154. package/types/PieOption.d.ts +21 -21
  155. package/types/SVG.d.ts +282 -282
  156. package/types/SVGConfig.d.ts +54 -54
  157. package/types/Shader.d.ts +22 -22
  158. package/types/Texture.d.ts +22 -22
  159. package/types/Tree.d.ts +74 -74
  160. package/types/TreeConfig.d.ts +52 -52
  161. package/types/TreeLayout.d.ts +71 -71
  162. package/types/TreeOption.d.ts +48 -48
  163. package/types/animation.d.ts +26 -26
  164. package/types/assemble.d.ts +14 -14
  165. package/types/getLoopColors.d.ts +13 -13
  166. package/types/getWebGLContext.d.ts +7 -7
  167. package/types/index.d.ts +220 -220
  168. package/types/module.d.ts +110 -110
  169. package/types/move.d.ts +15 -15
  170. package/types/option.d.ts +12 -12
  171. package/types/painterConfig.d.ts +14 -14
  172. package/types/rotate.d.ts +15 -15
  173. package/types/ruler.d.ts +24 -24
  174. package/types/scale.d.ts +15 -15
  175. package/types/throttle.d.ts +6 -6
  176. package/types/ui-canvas.d.ts +4 -4
  177. package/types/uni-canvas.d.ts +3 -3
  178. package/uni-app/drawImage.js +19 -19
  179. 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