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