vislite 1.0.0 → 1.1.0-alpha.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 (143) hide show
  1. package/AUTHORS.txt +6 -6
  2. package/CHANGELOG +244 -239
  3. package/LICENSE +20 -20
  4. package/README.md +142 -134
  5. package/lib/Buffer/index.es.js +1 -1
  6. package/lib/Buffer/index.es.min.js +1 -1
  7. package/lib/Canvas/index.es.js +1 -1
  8. package/lib/Canvas/index.es.min.js +1 -1
  9. package/lib/Cardinal/index.es.js +1 -1
  10. package/lib/Cardinal/index.es.min.js +1 -1
  11. package/lib/Eoap/index.es.js +1 -1
  12. package/lib/Eoap/index.es.min.js +1 -1
  13. package/lib/Hermite/index.es.js +1 -1
  14. package/lib/Hermite/index.es.min.js +1 -1
  15. package/lib/Matrix4/index.es.js +1 -1
  16. package/lib/Matrix4/index.es.min.js +1 -1
  17. package/lib/Mercator/index.es.js +1 -1
  18. package/lib/Mercator/index.es.min.js +1 -1
  19. package/lib/SVG/index.es.js +1 -1
  20. package/lib/SVG/index.es.min.js +1 -1
  21. package/lib/Shader/index.es.js +1 -1
  22. package/lib/Shader/index.es.min.js +1 -1
  23. package/lib/Texture/index.es.js +1 -1
  24. package/lib/Texture/index.es.min.js +1 -1
  25. package/lib/TreeLayout/index.es.js +1 -1
  26. package/lib/TreeLayout/index.es.min.js +1 -1
  27. package/lib/animation/index.es.js +1 -1
  28. package/lib/animation/index.es.min.js +1 -1
  29. package/lib/getLoopColors/index.es.js +1 -1
  30. package/lib/getLoopColors/index.es.min.js +1 -1
  31. package/lib/getWebGLContext/index.es.js +1 -1
  32. package/lib/getWebGLContext/index.es.min.js +1 -1
  33. package/lib/index.es.js +2278 -0
  34. package/lib/index.es.min.js +5 -0
  35. package/lib/index.umd.js +1 -1
  36. package/lib/index.umd.min.js +1 -1
  37. package/lib/move/index.es.js +1 -1
  38. package/lib/move/index.es.min.js +1 -1
  39. package/lib/rotate/index.es.js +1 -1
  40. package/lib/rotate/index.es.min.js +1 -1
  41. package/lib/ruler/index.es.js +1 -1
  42. package/lib/ruler/index.es.min.js +1 -1
  43. package/lib/scale/index.es.js +1 -1
  44. package/lib/scale/index.es.min.js +1 -1
  45. package/lib/throttle/index.es.js +1 -1
  46. package/lib/throttle/index.es.min.js +1 -1
  47. package/miniprogram/ui-canvas/drawImage.js +35 -35
  48. package/miniprogram/ui-canvas/index.js +115 -115
  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/Buffer/index.ts +2 -2
  53. package/package/Canvas/index.ts +2 -2
  54. package/package/Cardinal/index.ts +2 -2
  55. package/package/Eoap/index.ts +2 -2
  56. package/package/Hermite/index.ts +2 -2
  57. package/package/Matrix4/index.ts +2 -2
  58. package/package/Mercator/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 +2 -2
  64. package/package/getLoopColors/index.ts +2 -2
  65. package/package/getWebGLContext/index.ts +40 -40
  66. package/package/index.ts +65 -65
  67. package/package/move/index.ts +2 -2
  68. package/package/rotate/index.ts +2 -2
  69. package/package/ruler/index.ts +2 -2
  70. package/package/scale/index.ts +2 -2
  71. package/package/throttle/index.ts +2 -2
  72. package/package.json +75 -73
  73. package/src/Canvas.ts +73 -73
  74. package/src/Eoap.ts +66 -66
  75. package/src/Matrix4/index.ts +84 -84
  76. package/src/Matrix4/move.ts +12 -12
  77. package/src/Matrix4/rotate.ts +15 -15
  78. package/src/Matrix4/scale.ts +11 -11
  79. package/src/Matrix4/transform.ts +64 -64
  80. package/src/Mercator.ts +27 -27
  81. package/src/SVG.ts +24 -24
  82. package/src/animation.ts +98 -98
  83. package/src/common/assemble.ts +22 -22
  84. package/src/common/canvas/arc.ts +51 -51
  85. package/src/common/canvas/config.ts +158 -158
  86. package/src/common/canvas/gradient.ts +24 -24
  87. package/src/common/canvas/index.ts +177 -177
  88. package/src/common/canvas/painter.ts +455 -455
  89. package/src/common/canvas/texts.ts +18 -18
  90. package/src/common/mergeOption.ts +6 -6
  91. package/src/common/setStyle.ts +5 -5
  92. package/src/common/svg/config.ts +190 -190
  93. package/src/common/svg/gradient.ts +53 -53
  94. package/src/common/svg/index.ts +347 -347
  95. package/src/common/svg/tool.ts +44 -44
  96. package/src/common/tree/index.ts +25 -25
  97. package/src/common/tree/toInnerTree.ts +59 -59
  98. package/src/common/tree/toPlainTree.ts +132 -132
  99. package/src/common/webgl/buffer.ts +79 -79
  100. package/src/common/webgl/getWebGLContext.ts +45 -45
  101. package/src/common/webgl/shader.ts +75 -75
  102. package/src/common/webgl/texture.ts +97 -97
  103. package/src/getLoopColors.ts +42 -42
  104. package/src/interpolation/Cardinal.ts +110 -110
  105. package/src/interpolation/Hermite.ts +65 -65
  106. package/src/layout/TreeLayout.ts +188 -188
  107. package/src/move.ts +7 -7
  108. package/src/rotate.ts +7 -7
  109. package/src/ruler.ts +209 -209
  110. package/src/scale.ts +6 -6
  111. package/src/throttle.ts +52 -52
  112. package/types/Buffer.d.ts +23 -23
  113. package/types/Canvas.d.ts +323 -323
  114. package/types/CanvasConfig.d.ts +106 -106
  115. package/types/CanvasOption.d.ts +8 -8
  116. package/types/CanvasOpts.d.ts +9 -9
  117. package/types/Cardinal.d.ts +13 -13
  118. package/types/Gradient.d.ts +14 -14
  119. package/types/Hermite.d.ts +18 -18
  120. package/types/Map.d.ts +9 -9
  121. package/types/Matrix4.d.ts +47 -47
  122. package/types/SVG.d.ts +238 -238
  123. package/types/SVGConfig.d.ts +79 -79
  124. package/types/Shader.d.ts +16 -16
  125. package/types/Texture.d.ts +16 -16
  126. package/types/Tree.d.ts +69 -69
  127. package/types/TreeConfig.d.ts +36 -36
  128. package/types/TreeLayout.d.ts +54 -54
  129. package/types/TreeOption.d.ts +48 -48
  130. package/types/animation.d.ts +9 -9
  131. package/types/getLoopColors.d.ts +5 -5
  132. package/types/getWebGLContext.d.ts +7 -7
  133. package/types/index.d.ts +145 -145
  134. package/types/move.d.ts +5 -5
  135. package/types/painterConfig.d.ts +2 -2
  136. package/types/rotate.d.ts +5 -5
  137. package/types/ruler.d.ts +10 -10
  138. package/types/scale.d.ts +5 -5
  139. package/types/throttle.d.ts +7 -7
  140. package/types/throttleOption.d.ts +21 -21
  141. package/types/ui-canvas.d.ts +4 -4
  142. package/uni-app/drawImage.js +19 -19
  143. package/uni-app/ui-canvas.vue +283 -283
@@ -1,283 +1,283 @@
1
- <template>
2
- <view
3
- :class="cover || isH5 ? 'cover-view' : 'normal-view'"
4
- :style="{ display: 'inline-block' }"
5
- >
6
- <view
7
- v-if="!cover && !isH5"
8
- :class="'view-img view-' + uniqueid"
9
- @touchstart="doitstart"
10
- >
11
- <image
12
- :style="{ width: width + 'px', height: height + 'px' }"
13
- :src="viewImg"
14
- ></image>
15
- </view>
16
-
17
- <!-- #ifdef MP-ALIPAY -->
18
- <canvas
19
- :width="2 * width + 'px'"
20
- :height="2 * height + 'px'"
21
- class="painter"
22
- :id="'painter-' + uniqueid"
23
- @touchstart="doitstart"
24
- :style="[
25
- { width: width + 'px', height: height + 'px' },
26
- cover || isH5 ? {} : { position: 'fixed', left: '50000px' },
27
- ]"
28
- ></canvas>
29
- <canvas
30
- v-if="region"
31
- class="region"
32
- :id="'region-' + uniqueid"
33
- :style="{
34
- width: width + 'px',
35
- height: height + 'px',
36
- position: 'fixed',
37
- left: '50000px',
38
- }"
39
- ></canvas>
40
- <!-- #endif -->
41
- <!-- #ifdef MP-WEIXIN -->
42
- <canvas
43
- class="painter"
44
- canvas-id="painter"
45
- @touchstart="doitstart"
46
- :style="[
47
- { width: width + 'px', height: height + 'px' },
48
- cover || isH5 ? {} : { position: 'fixed', left: '50000px' },
49
- ]"
50
- ></canvas>
51
- <canvas
52
- v-if="region"
53
- class="region"
54
- canvas-id="region"
55
- :style="{
56
- width: width + 'px',
57
- height: height + 'px',
58
- position: 'fixed',
59
- left: '50000px',
60
- }"
61
- ></canvas>
62
- <!-- #endif -->
63
- <!-- #ifndef MP-WEIXIN||MP-ALIPAY -->
64
- <canvas
65
- class="painter"
66
- :canvas-id="'painter-' + uniqueid"
67
- @touchstart="doitstart"
68
- :style="[
69
- { width: width + 'px', height: height + 'px' },
70
- cover || isH5 ? {} : { position: 'fixed', left: '50000px' },
71
- ]"
72
- ></canvas>
73
- <canvas
74
- v-if="region"
75
- class="region"
76
- :canvas-id="'region-' + uniqueid"
77
- :style="{
78
- width: width + 'px',
79
- height: height + 'px',
80
- position: 'fixed',
81
- left: '50000px',
82
- }"
83
- ></canvas>
84
- <!-- #endif -->
85
- </view>
86
- </template>
87
- <script>
88
- import { RawCanvas } from "../lib/index.umd.min.js";
89
- import drawImage from "./drawImage.js";
90
- export default {
91
- data() {
92
- return {
93
- uniqueid: (Math.random() * 10000).toFixed(0),
94
- help: {},
95
- viewImg: "",
96
- // #ifdef H5
97
- isH5: true,
98
- // #endif
99
- // #ifndef H5
100
- isH5: false,
101
- // #endif
102
- hadFetch:false
103
- };
104
- },
105
- props: {
106
- width: {
107
- type: Number,
108
- default: 300,
109
- },
110
- height: {
111
- type: Number,
112
- default: 150,
113
- },
114
- cover: {
115
- type: Boolean,
116
- default: true,
117
- },
118
- region: {
119
- type: Boolean,
120
- default: true,
121
- },
122
- },
123
- methods: {
124
- fetch() {
125
- let painter, region, painterid, regionid;
126
- // #ifdef MP-WEIXIN
127
- painter = uni.createCanvasContext("painter", this);
128
- if (this.region) region = uni.createCanvasContext("region", this);
129
- painterid = "painter";
130
- regionid = "region";
131
- // #endif
132
- // #ifndef MP-WEIXIN
133
- painter = uni.createCanvasContext("painter-" + this.uniqueid, this);
134
- if (this.region)
135
- region = uni.createCanvasContext("region-" + this.uniqueid, this);
136
- painterid = "painter-" + this.uniqueid;
137
- regionid = "region-" + this.uniqueid;
138
- // #endif
139
-
140
- // #ifdef MP-ALIPAY
141
- if(!this.hadFetch) painter.scale(2, 2);
142
- // #endif
143
-
144
- let scaleSize = 1;
145
-
146
- // #ifdef MP-ALIPAY
147
- scaleSize = 2;
148
- // #endif
149
-
150
- let _this = this;
151
- this.help.instance = new RawCanvas(
152
- {
153
- getContext() {
154
- return painter;
155
- },
156
- },
157
- _this.region
158
- ? {
159
- getContext() {
160
- // #ifdef MP-ALIPAY
161
- let getImageData = region.getImageData;
162
- // #endif
163
- region.getImageData = (x, y, width, height) => {
164
- return new Promise((resolve, reject) => {
165
- let options = {
166
- x,
167
- y,
168
- width,
169
- height,
170
- canvasId: regionid,
171
- success: function success(res) {
172
- resolve(res.data);
173
- },
174
- fail: function fail(error) {
175
- reject(error);
176
- },
177
- };
178
-
179
- // #ifdef MP-ALIPAY
180
- getImageData(options);
181
- // #endif
182
- // #ifndef MP-ALIPAY
183
- uni.canvasGetImageData(options, _this);
184
- // #endif
185
- });
186
- };
187
- return region;
188
- },
189
- }
190
- : null,
191
- scaleSize
192
- );
193
- this.help.instance.draw = (reserve = false, callback = () => {}) => {
194
- painter.draw(reserve, () => {
195
- // 如果不使用原生渲染
196
- if (!this.cover && !this.isH5) {
197
- uni.canvasToTempFilePath(
198
- {
199
- canvasId: painterid,
200
- success: (e) => {
201
- this.viewImg = e.tempFilePath;
202
- if (_this.region) region.draw(reserve);
203
- callback();
204
- },
205
- },
206
- // #ifndef MP-ALIPAY
207
- this
208
- // #endif
209
- );
210
- } else {
211
- if (_this.region) region.draw(reserve);
212
- callback();
213
- }
214
- });
215
- };
216
-
217
- this.hadFetch = true;
218
- return new Promise((resolve, reject) => {
219
- this.help.instance.toDataURL = () => {
220
- return new Promise((resolveUrl) => {
221
- uni.canvasToTempFilePath(
222
- {
223
- canvasId: painterid,
224
- success: function (e) {
225
- resolveUrl(e.tempFilePath);
226
- },
227
- },
228
- // #ifndef MP-ALIPAY
229
- this
230
- // #endif
231
- );
232
- });
233
- };
234
-
235
- this.help.instance.drawImage = drawImage(
236
- this.help.instance,
237
- this.help.instance.drawImage
238
- );
239
-
240
- resolve(this.help.instance);
241
- });
242
- },
243
- doit(event) {
244
- let doRun = (x, y) => {
245
- this.help.instance.getRegion(x, y).then((regionName) => {
246
- this.$emit("dotouchstart", {
247
- name: regionName,
248
- x: x,
249
- y: y,
250
- });
251
- });
252
- };
253
-
254
- if (this.cover || this.isH5) {
255
- let x = event.touches[0].x;
256
- let y = event.touches[0].y;
257
- doRun(x, y);
258
- } else {
259
- uni
260
- .createSelectorQuery()
261
- .selectViewport()
262
- .scrollOffset()
263
- .exec((ret) => {
264
- uni
265
- .createSelectorQuery()
266
- .in(this)
267
- .select(".view-" + this.uniqueid)
268
- .boundingClientRect((data) => {
269
- doRun(
270
- event.touches[0].pageX - data.left - ret[0].scrollLeft,
271
- event.touches[0].pageY - data.top - ret[0].scrollTop
272
- );
273
- })
274
- .exec();
275
- });
276
- }
277
- },
278
- doitstart(event) {
279
- this.doit(event);
280
- },
281
- },
282
- };
283
- </script>
1
+ <template>
2
+ <view
3
+ :class="cover || isH5 ? 'cover-view' : 'normal-view'"
4
+ :style="{ display: 'inline-block' }"
5
+ >
6
+ <view
7
+ v-if="!cover && !isH5"
8
+ :class="'view-img view-' + uniqueid"
9
+ @touchstart="doitstart"
10
+ >
11
+ <image
12
+ :style="{ width: width + 'px', height: height + 'px' }"
13
+ :src="viewImg"
14
+ ></image>
15
+ </view>
16
+
17
+ <!-- #ifdef MP-ALIPAY -->
18
+ <canvas
19
+ :width="2 * width + 'px'"
20
+ :height="2 * height + 'px'"
21
+ class="painter"
22
+ :id="'painter-' + uniqueid"
23
+ @touchstart="doitstart"
24
+ :style="[
25
+ { width: width + 'px', height: height + 'px' },
26
+ cover || isH5 ? {} : { position: 'fixed', left: '50000px' },
27
+ ]"
28
+ ></canvas>
29
+ <canvas
30
+ v-if="region"
31
+ class="region"
32
+ :id="'region-' + uniqueid"
33
+ :style="{
34
+ width: width + 'px',
35
+ height: height + 'px',
36
+ position: 'fixed',
37
+ left: '50000px',
38
+ }"
39
+ ></canvas>
40
+ <!-- #endif -->
41
+ <!-- #ifdef MP-WEIXIN -->
42
+ <canvas
43
+ class="painter"
44
+ canvas-id="painter"
45
+ @touchstart="doitstart"
46
+ :style="[
47
+ { width: width + 'px', height: height + 'px' },
48
+ cover || isH5 ? {} : { position: 'fixed', left: '50000px' },
49
+ ]"
50
+ ></canvas>
51
+ <canvas
52
+ v-if="region"
53
+ class="region"
54
+ canvas-id="region"
55
+ :style="{
56
+ width: width + 'px',
57
+ height: height + 'px',
58
+ position: 'fixed',
59
+ left: '50000px',
60
+ }"
61
+ ></canvas>
62
+ <!-- #endif -->
63
+ <!-- #ifndef MP-WEIXIN||MP-ALIPAY -->
64
+ <canvas
65
+ class="painter"
66
+ :canvas-id="'painter-' + uniqueid"
67
+ @touchstart="doitstart"
68
+ :style="[
69
+ { width: width + 'px', height: height + 'px' },
70
+ cover || isH5 ? {} : { position: 'fixed', left: '50000px' },
71
+ ]"
72
+ ></canvas>
73
+ <canvas
74
+ v-if="region"
75
+ class="region"
76
+ :canvas-id="'region-' + uniqueid"
77
+ :style="{
78
+ width: width + 'px',
79
+ height: height + 'px',
80
+ position: 'fixed',
81
+ left: '50000px',
82
+ }"
83
+ ></canvas>
84
+ <!-- #endif -->
85
+ </view>
86
+ </template>
87
+ <script>
88
+ import { RawCanvas } from "../lib/index.umd.min.js";
89
+ import drawImage from "./drawImage.js";
90
+ export default {
91
+ data() {
92
+ return {
93
+ uniqueid: (Math.random() * 10000).toFixed(0),
94
+ help: {},
95
+ viewImg: "",
96
+ // #ifdef H5
97
+ isH5: true,
98
+ // #endif
99
+ // #ifndef H5
100
+ isH5: false,
101
+ // #endif
102
+ hadFetch:false
103
+ };
104
+ },
105
+ props: {
106
+ width: {
107
+ type: Number,
108
+ default: 300,
109
+ },
110
+ height: {
111
+ type: Number,
112
+ default: 150,
113
+ },
114
+ cover: {
115
+ type: Boolean,
116
+ default: true,
117
+ },
118
+ region: {
119
+ type: Boolean,
120
+ default: true,
121
+ },
122
+ },
123
+ methods: {
124
+ fetch() {
125
+ let painter, region, painterid, regionid;
126
+ // #ifdef MP-WEIXIN
127
+ painter = uni.createCanvasContext("painter", this);
128
+ if (this.region) region = uni.createCanvasContext("region", this);
129
+ painterid = "painter";
130
+ regionid = "region";
131
+ // #endif
132
+ // #ifndef MP-WEIXIN
133
+ painter = uni.createCanvasContext("painter-" + this.uniqueid, this);
134
+ if (this.region)
135
+ region = uni.createCanvasContext("region-" + this.uniqueid, this);
136
+ painterid = "painter-" + this.uniqueid;
137
+ regionid = "region-" + this.uniqueid;
138
+ // #endif
139
+
140
+ // #ifdef MP-ALIPAY
141
+ if(!this.hadFetch) painter.scale(2, 2);
142
+ // #endif
143
+
144
+ let scaleSize = 1;
145
+
146
+ // #ifdef MP-ALIPAY
147
+ scaleSize = 2;
148
+ // #endif
149
+
150
+ let _this = this;
151
+ this.help.instance = new RawCanvas(
152
+ {
153
+ getContext() {
154
+ return painter;
155
+ },
156
+ },
157
+ _this.region
158
+ ? {
159
+ getContext() {
160
+ // #ifdef MP-ALIPAY
161
+ let getImageData = region.getImageData;
162
+ // #endif
163
+ region.getImageData = (x, y, width, height) => {
164
+ return new Promise((resolve, reject) => {
165
+ let options = {
166
+ x,
167
+ y,
168
+ width,
169
+ height,
170
+ canvasId: regionid,
171
+ success: function success(res) {
172
+ resolve(res.data);
173
+ },
174
+ fail: function fail(error) {
175
+ reject(error);
176
+ },
177
+ };
178
+
179
+ // #ifdef MP-ALIPAY
180
+ getImageData(options);
181
+ // #endif
182
+ // #ifndef MP-ALIPAY
183
+ uni.canvasGetImageData(options, _this);
184
+ // #endif
185
+ });
186
+ };
187
+ return region;
188
+ },
189
+ }
190
+ : null,
191
+ scaleSize
192
+ );
193
+ this.help.instance.draw = (reserve = false, callback = () => {}) => {
194
+ painter.draw(reserve, () => {
195
+ // 如果不使用原生渲染
196
+ if (!this.cover && !this.isH5) {
197
+ uni.canvasToTempFilePath(
198
+ {
199
+ canvasId: painterid,
200
+ success: (e) => {
201
+ this.viewImg = e.tempFilePath;
202
+ if (_this.region) region.draw(reserve);
203
+ callback();
204
+ },
205
+ },
206
+ // #ifndef MP-ALIPAY
207
+ this
208
+ // #endif
209
+ );
210
+ } else {
211
+ if (_this.region) region.draw(reserve);
212
+ callback();
213
+ }
214
+ });
215
+ };
216
+
217
+ this.hadFetch = true;
218
+ return new Promise((resolve, reject) => {
219
+ this.help.instance.toDataURL = () => {
220
+ return new Promise((resolveUrl) => {
221
+ uni.canvasToTempFilePath(
222
+ {
223
+ canvasId: painterid,
224
+ success: function (e) {
225
+ resolveUrl(e.tempFilePath);
226
+ },
227
+ },
228
+ // #ifndef MP-ALIPAY
229
+ this
230
+ // #endif
231
+ );
232
+ });
233
+ };
234
+
235
+ this.help.instance.drawImage = drawImage(
236
+ this.help.instance,
237
+ this.help.instance.drawImage
238
+ );
239
+
240
+ resolve(this.help.instance);
241
+ });
242
+ },
243
+ doit(event) {
244
+ let doRun = (x, y) => {
245
+ this.help.instance.getRegion(x, y).then((regionName) => {
246
+ this.$emit("dotouchstart", {
247
+ name: regionName,
248
+ x: x,
249
+ y: y,
250
+ });
251
+ });
252
+ };
253
+
254
+ if (this.cover || this.isH5) {
255
+ let x = event.touches[0].x;
256
+ let y = event.touches[0].y;
257
+ doRun(x, y);
258
+ } else {
259
+ uni
260
+ .createSelectorQuery()
261
+ .selectViewport()
262
+ .scrollOffset()
263
+ .exec((ret) => {
264
+ uni
265
+ .createSelectorQuery()
266
+ .in(this)
267
+ .select(".view-" + this.uniqueid)
268
+ .boundingClientRect((data) => {
269
+ doRun(
270
+ event.touches[0].pageX - data.left - ret[0].scrollLeft,
271
+ event.touches[0].pageY - data.top - ret[0].scrollTop
272
+ );
273
+ })
274
+ .exec();
275
+ });
276
+ }
277
+ },
278
+ doitstart(event) {
279
+ this.doit(event);
280
+ },
281
+ },
282
+ };
283
+ </script>