vislite 1.12.0-alpha.0 → 1.12.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 (183) hide show
  1. package/AUTHORS.txt +6 -6
  2. package/CHANGELOG +402 -394
  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 -800
  13. package/lib/Canvas/index.es.min.js +1 -1
  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 -732
  22. package/lib/RawCanvas/index.es.min.js +1 -1
  23. package/lib/SVG/index.es.js +626 -631
  24. package/lib/SVG/index.es.min.js +1 -1
  25. package/lib/Shader/index.es.js +34 -34
  26. package/lib/Texture/index.es.js +52 -52
  27. package/lib/TreeLayout/index.es.js +301 -315
  28. package/lib/animation/index.es.js +2 -2
  29. package/lib/assemble/index.es.js +19 -16
  30. package/lib/assemble/index.es.min.js +1 -1
  31. package/lib/getLoopColors/index.es.js +34 -34
  32. package/lib/getWebGLContext/index.es.js +61 -61
  33. package/lib/index.umd.js +2797 -2784
  34. package/lib/index.umd.min.js +2 -2
  35. package/lib/initOption/index.es.js +5 -5
  36. package/lib/mergeOption/index.es.js +34 -34
  37. package/lib/move/index.es.js +6 -6
  38. package/lib/rotate/index.es.js +6 -6
  39. package/lib/ruler/index.es.js +136 -136
  40. package/lib/scale/index.es.js +5 -5
  41. package/minialipay/ui-canvas/drawImage.js +35 -35
  42. package/minialipay/ui-canvas/index.acss +4 -4
  43. package/minialipay/ui-canvas/index.axml +3 -3
  44. package/minialipay/ui-canvas/index.d.ts +1 -1
  45. package/minialipay/ui-canvas/index.js +100 -100
  46. package/minialipay/ui-canvas/index.json +6 -6
  47. package/miniprogram/ui-canvas/drawImage.js +35 -35
  48. package/miniprogram/ui-canvas/index.js +125 -125
  49. package/miniprogram/ui-canvas/index.json +4 -4
  50. package/miniprogram/ui-canvas/index.wxml +4 -4
  51. package/miniprogram/ui-canvas/index.wxss +5 -5
  52. package/package/BarLayout/index.ts +2 -2
  53. package/package/Buffer/index.ts +2 -2
  54. package/package/Canvas/index.ts +2 -2
  55. package/package/Cardinal/index.ts +2 -2
  56. package/package/Eoap/index.ts +2 -2
  57. package/package/Hermite/index.ts +2 -2
  58. package/package/MapCoordinate/index.ts +2 -2
  59. package/package/Matrix4/index.ts +2 -2
  60. package/package/Mercator/index.ts +2 -2
  61. package/package/PieLayout/index.ts +2 -2
  62. package/package/RawCanvas/index.ts +2 -2
  63. package/package/SVG/index.ts +2 -2
  64. package/package/Shader/index.ts +2 -2
  65. package/package/Texture/index.ts +2 -2
  66. package/package/TreeLayout/index.ts +2 -2
  67. package/package/animation/index.ts +5 -5
  68. package/package/assemble/index.ts +2 -2
  69. package/package/getLoopColors/index.ts +2 -2
  70. package/package/getWebGLContext/index.ts +40 -40
  71. package/package/index.ts +84 -84
  72. package/package/initOption/index.ts +2 -2
  73. package/package/mergeOption/index.ts +2 -2
  74. package/package/move/index.ts +2 -2
  75. package/package/rotate/index.ts +2 -2
  76. package/package/ruler/index.ts +2 -2
  77. package/package/scale/index.ts +2 -2
  78. package/package/throttle/index.ts +2 -2
  79. package/package.json +79 -79
  80. package/skills/vislite-lib/BarLayout.md +117 -117
  81. package/skills/vislite-lib/Canvas.md +183 -183
  82. package/skills/vislite-lib/Interpolation.md +129 -129
  83. package/skills/vislite-lib/Matrix.md +174 -174
  84. package/skills/vislite-lib/PieLayout.md +131 -131
  85. package/skills/vislite-lib/Projections.md +158 -158
  86. package/skills/vislite-lib/SKILL.md +179 -179
  87. package/skills/vislite-lib/SVG.md +137 -137
  88. package/skills/vislite-lib/TreeLayout.md +176 -176
  89. package/skills/vislite-lib/Utilities.md +261 -261
  90. package/skills/vislite-lib/WebGL.md +106 -106
  91. package/skills/vislite-lib/minialipay/ui-canvas.md +95 -95
  92. package/skills/vislite-lib/miniprogram/ui-canvas.md +98 -98
  93. package/skills/vislite-lib/uniapp/ui-canvas.md +113 -113
  94. package/src/Canvas.ts +89 -89
  95. package/src/Eoap.ts +66 -66
  96. package/src/Matrix4/index.ts +84 -84
  97. package/src/Matrix4/move.ts +12 -12
  98. package/src/Matrix4/rotate.ts +15 -15
  99. package/src/Matrix4/scale.ts +11 -11
  100. package/src/Matrix4/transform.ts +64 -64
  101. package/src/Mercator.ts +27 -27
  102. package/src/SVG.ts +86 -69
  103. package/src/common/assemble.ts +30 -22
  104. package/src/common/canvas/arc.ts +51 -51
  105. package/src/common/canvas/config.ts +176 -176
  106. package/src/common/canvas/default.ts +64 -64
  107. package/src/common/canvas/gradient.ts +31 -31
  108. package/src/common/canvas/index.ts +189 -189
  109. package/src/common/canvas/painter.ts +475 -454
  110. package/src/common/canvas/texts.ts +18 -18
  111. package/src/common/map/getBoundary.ts +15 -15
  112. package/src/common/map/tool.ts +29 -29
  113. package/src/common/option.ts +31 -31
  114. package/src/common/setStyle.ts +5 -5
  115. package/src/common/svg/config.ts +213 -213
  116. package/src/common/svg/default.ts +29 -29
  117. package/src/common/svg/gradient.ts +53 -53
  118. package/src/common/svg/index.ts +420 -420
  119. package/src/common/svg/tool.ts +51 -51
  120. package/src/common/tree/index.ts +25 -25
  121. package/src/common/tree/toInnerTree.ts +61 -61
  122. package/src/common/tree/toPlainTree.ts +135 -135
  123. package/src/common/type.ts +26 -26
  124. package/src/common/webgl/buffer.ts +79 -79
  125. package/src/common/webgl/getWebGLContext.ts +45 -45
  126. package/src/common/webgl/shader.ts +75 -75
  127. package/src/common/webgl/texture.ts +98 -98
  128. package/src/coordinate/MapCoordinate.ts +80 -80
  129. package/src/getLoopColors.ts +42 -42
  130. package/src/interpolation/Cardinal.ts +110 -110
  131. package/src/interpolation/Hermite.ts +65 -65
  132. package/src/layout/BarLayout.ts +249 -249
  133. package/src/layout/PieLayout.ts +146 -146
  134. package/src/layout/TreeLayout.ts +200 -200
  135. package/src/move.ts +7 -7
  136. package/src/rotate.ts +7 -7
  137. package/src/ruler.ts +209 -209
  138. package/src/scale.ts +6 -6
  139. package/types/Bar.d.ts +91 -91
  140. package/types/BarConfig.d.ts +4 -4
  141. package/types/BarLayout.d.ts +48 -48
  142. package/types/BarOption.d.ts +31 -31
  143. package/types/Buffer.d.ts +30 -30
  144. package/types/Canvas.d.ts +379 -379
  145. package/types/CanvasConfig.d.ts +61 -61
  146. package/types/CanvasOption.d.ts +13 -13
  147. package/types/CanvasOpts.d.ts +9 -9
  148. package/types/Cardinal.d.ts +20 -20
  149. package/types/Gradient.d.ts +20 -20
  150. package/types/Hermite.d.ts +25 -25
  151. package/types/Map.d.ts +9 -9
  152. package/types/MapConfig.d.ts +27 -27
  153. package/types/MapCoordinate.d.ts +22 -22
  154. package/types/Matrix4.d.ts +79 -79
  155. package/types/Pie.d.ts +73 -73
  156. package/types/PieConfig.d.ts +26 -26
  157. package/types/PieLayout.d.ts +40 -40
  158. package/types/PieOption.d.ts +21 -21
  159. package/types/SVG.d.ts +282 -282
  160. package/types/SVGConfig.d.ts +54 -54
  161. package/types/Shader.d.ts +22 -22
  162. package/types/Texture.d.ts +22 -22
  163. package/types/Tree.d.ts +74 -74
  164. package/types/TreeConfig.d.ts +52 -52
  165. package/types/TreeLayout.d.ts +71 -71
  166. package/types/TreeOption.d.ts +48 -48
  167. package/types/animation.d.ts +26 -26
  168. package/types/assemble.d.ts +14 -14
  169. package/types/getLoopColors.d.ts +13 -13
  170. package/types/getWebGLContext.d.ts +7 -7
  171. package/types/index.d.ts +220 -221
  172. package/types/module.d.ts +110 -110
  173. package/types/move.d.ts +15 -15
  174. package/types/option.d.ts +12 -12
  175. package/types/painterConfig.d.ts +14 -14
  176. package/types/rotate.d.ts +15 -15
  177. package/types/ruler.d.ts +24 -24
  178. package/types/scale.d.ts +15 -15
  179. package/types/throttle.d.ts +6 -6
  180. package/types/ui-canvas.d.ts +4 -4
  181. package/types/uni-canvas.d.ts +3 -3
  182. package/uni-app/drawImage.js +19 -19
  183. package/uni-app/ui-canvas.vue +295 -295
@@ -1,189 +1,189 @@
1
- import type CanvasConfigType from "../../../types/CanvasConfig"
2
- import type CanvasOptsType from '../../../types/CanvasOpts'
3
-
4
- import PainterRender from "./painter"
5
- import assemble from "../assemble"
6
- import { linearGradient, radialGradient, conicGradient } from "./gradient"
7
- import { initText } from './config'
8
- import defaultFactory from "./default"
9
- import { initOption } from "../option"
10
-
11
- class Canvas extends PainterRender {
12
- readonly name: string = "Canvas"
13
-
14
- private __regionList = {} //区域映射表
15
- private __scaleSize
16
-
17
- // 步长由1改为10是为了优化区域计算有时候出错问题
18
- // 2023年7月6日 于南京
19
- private __regionAssemble = assemble(0, 255, 10, 3)
20
-
21
- // 添加scaleSize参数是为了适配画布缩放后的处理
22
- // 2024年1月17日 于南京
23
- constructor(ViewCanvas: HTMLCanvasElement, RegionCanvas: HTMLCanvasElement | null, opts: CanvasOptsType = {}, scaleSize = 1) {
24
- super(
25
- ViewCanvas,
26
- opts,
27
- RegionCanvas ? new PainterRender(RegionCanvas, {
28
- willReadFrequently: true,
29
- }) : undefined, true, scaleSize
30
- )
31
-
32
- this.__scaleSize = scaleSize
33
- this.setRegion("")
34
- }
35
-
36
- config(configs: CanvasConfigType) {
37
- for (const key in configs) {
38
- this.useConfig(key, (configs as any)[key])
39
- }
40
-
41
- return this
42
- }
43
-
44
- reset(config: CanvasConfigType = {}) {
45
- this.config(initOption(config, defaultFactory() as CanvasConfigType))
46
- return this
47
- }
48
-
49
- // 是否绘制的内容只需要进行区域记录
50
- onlyRegion(flag: boolean) {
51
- this.__onlyRegion = flag
52
- return this
53
- }
54
-
55
- onlyView(flag: boolean) {
56
- this.__onlyView = flag
57
- return this
58
- }
59
-
60
- // 设置当前绘制区域名称
61
- setRegion(regionName: string | number) {
62
- if (this.__region) {
63
- if (regionName) {
64
- if ((this.__regionList as any)[regionName] == void 0) {
65
- const tempColor = this.__regionAssemble();
66
- (this.__regionList as any)[regionName] =
67
- "rgb(" + tempColor[0] + "," + tempColor[1] + "," + tempColor[2] + ")"
68
- }
69
-
70
- this.__region.useConfig("fillStyle", (this.__regionList as any)[regionName]) &&
71
- this.__region.useConfig("strokeStyle", (this.__regionList as any)[regionName])
72
- } else {
73
- this.__region.useConfig("fillStyle", "#000000") &&
74
- this.__region.useConfig("strokeStyle", "#000000")
75
- }
76
- }
77
- return this
78
- }
79
-
80
- // 获取当前事件触发的区域名称
81
- getRegion(x: number, y: number): Promise<string> {
82
- return new Promise((resolve) => {
83
- const imgData = this.__region ? this.__region.painter.getImageData(x - 0.5, y - 0.5, 1, 1) : {
84
- data: [0, 0, 0, 0]
85
- }
86
-
87
- // 获取点击点的颜色
88
- let currentRGBA = imgData.data
89
-
90
- const doit = () => {
91
- if (this.__region) {
92
-
93
- // 查找当前点击的区域
94
- for (const key in this.__regionList) {
95
- if (
96
- "rgb(" +
97
- currentRGBA[0] +
98
- "," +
99
- currentRGBA[1] +
100
- "," +
101
- currentRGBA[2] +
102
- ")" ==
103
- (this.__regionList as any)[key]
104
- ) {
105
- resolve(key)
106
- break
107
- }
108
- }
109
- }
110
-
111
- resolve("")
112
- }
113
-
114
- // 如果有值
115
- if (currentRGBA) {
116
- doit()
117
- }
118
-
119
- // 否则就是在Promise中
120
- else {
121
- (imgData as any).then((data: Uint8ClampedArray) => {
122
- currentRGBA = data
123
- doit()
124
- })
125
- }
126
- })
127
- }
128
-
129
- textWidth(text: string) {
130
- this.painter.save()
131
-
132
- initText(this.painter, this.__specialConfig, 0, 0, 0)
133
-
134
- // 虽然我们限制了只可以输入字符串,可是不代表所有环境都可以保证,为了确保方法不失效,强转成字符串
135
- const width = this.painter.measureText(text + "").width
136
-
137
- this.painter.restore()
138
-
139
- return width
140
- }
141
-
142
- // 获取原始画笔
143
- getContext(isRegion = false) {
144
- return isRegion ? (this.__region ? this.__region.painter : null) : this.painter
145
- }
146
-
147
- // 获取画布信息
148
- getInfo() {
149
- return {
150
- width: this.painter.canvas.width / this.__scaleSize,
151
- height: this.painter.canvas.height / this.__scaleSize
152
- }
153
- }
154
-
155
- // 线性渐变
156
- createLinearGradient(x0: number, y0: number, x1: number, y1: number) {
157
- return linearGradient(this.painter, x0, y0, x1, y1)
158
- }
159
-
160
- // 环形渐变
161
- createRadialGradient(cx: number, cy: number, r: number) {
162
- return radialGradient(this.painter, cx, cy, r)
163
- }
164
-
165
- // 角度渐变
166
- createConicGradient(cx: number, cy: number, beginDeg: number, deg?: number) {
167
- return conicGradient(this.painter, cx, cy, beginDeg, deg)
168
- }
169
-
170
- // 获取指定位置颜色
171
- getColor(x: number, y: number) {
172
- x *= this.__scaleSize
173
- y *= this.__scaleSize
174
- const currentRGBA = this.painter.getImageData(x - 0.5, y - 0.5, 1, 1).data
175
- return (
176
- "rgba(" +
177
- currentRGBA[0] +
178
- "," +
179
- currentRGBA[1] +
180
- "," +
181
- currentRGBA[2] +
182
- "," +
183
- currentRGBA[3] +
184
- ")"
185
- )
186
- }
187
- }
188
-
189
- export default Canvas
1
+ import type CanvasConfigType from "../../../types/CanvasConfig"
2
+ import type CanvasOptsType from '../../../types/CanvasOpts'
3
+
4
+ import PainterRender from "./painter"
5
+ import assemble from "../assemble"
6
+ import { linearGradient, radialGradient, conicGradient } from "./gradient"
7
+ import { initText } from './config'
8
+ import defaultFactory from "./default"
9
+ import { initOption } from "../option"
10
+
11
+ class Canvas extends PainterRender {
12
+ readonly name: string = "Canvas"
13
+
14
+ private __regionList = {} //区域映射表
15
+ private __scaleSize
16
+
17
+ // 步长由1改为10是为了优化区域计算有时候出错问题
18
+ // 2023年7月6日 于南京
19
+ private __regionAssemble = assemble(0, 255, 10, 3)
20
+
21
+ // 添加scaleSize参数是为了适配画布缩放后的处理
22
+ // 2024年1月17日 于南京
23
+ constructor(ViewCanvas: HTMLCanvasElement, RegionCanvas: HTMLCanvasElement | null, opts: CanvasOptsType = {}, scaleSize = 1) {
24
+ super(
25
+ ViewCanvas,
26
+ opts,
27
+ RegionCanvas ? new PainterRender(RegionCanvas, {
28
+ willReadFrequently: true,
29
+ }) : undefined, true, scaleSize
30
+ )
31
+
32
+ this.__scaleSize = scaleSize
33
+ this.setRegion("")
34
+ }
35
+
36
+ config(configs: CanvasConfigType) {
37
+ for (const key in configs) {
38
+ this.useConfig(key, (configs as any)[key])
39
+ }
40
+
41
+ return this
42
+ }
43
+
44
+ reset(config: CanvasConfigType = {}) {
45
+ this.config(initOption(config, defaultFactory() as CanvasConfigType))
46
+ return this
47
+ }
48
+
49
+ // 是否绘制的内容只需要进行区域记录
50
+ onlyRegion(flag: boolean) {
51
+ this.__onlyRegion = flag
52
+ return this
53
+ }
54
+
55
+ onlyView(flag: boolean) {
56
+ this.__onlyView = flag
57
+ return this
58
+ }
59
+
60
+ // 设置当前绘制区域名称
61
+ setRegion(regionName: string | number) {
62
+ if (this.__region) {
63
+ if (regionName) {
64
+ if ((this.__regionList as any)[regionName] == void 0) {
65
+ const tempColor = this.__regionAssemble();
66
+ (this.__regionList as any)[regionName] =
67
+ "rgb(" + tempColor[0] + "," + tempColor[1] + "," + tempColor[2] + ")"
68
+ }
69
+
70
+ this.__region.useConfig("fillStyle", (this.__regionList as any)[regionName]) &&
71
+ this.__region.useConfig("strokeStyle", (this.__regionList as any)[regionName])
72
+ } else {
73
+ this.__region.useConfig("fillStyle", "#000000") &&
74
+ this.__region.useConfig("strokeStyle", "#000000")
75
+ }
76
+ }
77
+ return this
78
+ }
79
+
80
+ // 获取当前事件触发的区域名称
81
+ getRegion(x: number, y: number): Promise<string> {
82
+ return new Promise((resolve) => {
83
+ const imgData = this.__region ? this.__region.painter.getImageData(x - 0.5, y - 0.5, 1, 1) : {
84
+ data: [0, 0, 0, 0]
85
+ }
86
+
87
+ // 获取点击点的颜色
88
+ let currentRGBA = imgData.data
89
+
90
+ const doit = () => {
91
+ if (this.__region) {
92
+
93
+ // 查找当前点击的区域
94
+ for (const key in this.__regionList) {
95
+ if (
96
+ "rgb(" +
97
+ currentRGBA[0] +
98
+ "," +
99
+ currentRGBA[1] +
100
+ "," +
101
+ currentRGBA[2] +
102
+ ")" ==
103
+ (this.__regionList as any)[key]
104
+ ) {
105
+ resolve(key)
106
+ break
107
+ }
108
+ }
109
+ }
110
+
111
+ resolve("")
112
+ }
113
+
114
+ // 如果有值
115
+ if (currentRGBA) {
116
+ doit()
117
+ }
118
+
119
+ // 否则就是在Promise中
120
+ else {
121
+ (imgData as any).then((data: Uint8ClampedArray) => {
122
+ currentRGBA = data as any
123
+ doit()
124
+ })
125
+ }
126
+ })
127
+ }
128
+
129
+ textWidth(text: string) {
130
+ this.painter.save()
131
+
132
+ initText(this.painter, this.__specialConfig, 0, 0, 0)
133
+
134
+ // 虽然我们限制了只可以输入字符串,可是不代表所有环境都可以保证,为了确保方法不失效,强转成字符串
135
+ const width = this.painter.measureText(text + "").width
136
+
137
+ this.painter.restore()
138
+
139
+ return width
140
+ }
141
+
142
+ // 获取原始画笔
143
+ getContext(isRegion = false) {
144
+ return isRegion ? (this.__region ? this.__region.painter : null) : this.painter
145
+ }
146
+
147
+ // 获取画布信息
148
+ getInfo() {
149
+ return {
150
+ width: this.painter.canvas.width / this.__scaleSize,
151
+ height: this.painter.canvas.height / this.__scaleSize
152
+ }
153
+ }
154
+
155
+ // 线性渐变
156
+ createLinearGradient(x0: number, y0: number, x1: number, y1: number) {
157
+ return linearGradient(this.painter, x0, y0, x1, y1)
158
+ }
159
+
160
+ // 环形渐变
161
+ createRadialGradient(cx: number, cy: number, r: number) {
162
+ return radialGradient(this.painter, cx, cy, r)
163
+ }
164
+
165
+ // 角度渐变
166
+ createConicGradient(cx: number, cy: number, beginDeg: number, deg?: number) {
167
+ return conicGradient(this.painter, cx, cy, beginDeg, deg)
168
+ }
169
+
170
+ // 获取指定位置颜色
171
+ getColor(x: number, y: number) {
172
+ x *= this.__scaleSize
173
+ y *= this.__scaleSize
174
+ const currentRGBA = this.painter.getImageData(x - 0.5, y - 0.5, 1, 1).data
175
+ return (
176
+ "rgba(" +
177
+ currentRGBA[0] +
178
+ "," +
179
+ currentRGBA[1] +
180
+ "," +
181
+ currentRGBA[2] +
182
+ "," +
183
+ currentRGBA[3] +
184
+ ")"
185
+ )
186
+ }
187
+ }
188
+
189
+ export default Canvas