vislite 1.2.0-beta.0 → 1.2.1-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 (78) hide show
  1. package/CHANGELOG +279 -274
  2. package/README.md +175 -175
  3. package/lib/Buffer/index.es.js +1 -1
  4. package/lib/Buffer/index.es.min.js +1 -1
  5. package/lib/Canvas/index.es.js +1 -1
  6. package/lib/Canvas/index.es.min.js +1 -1
  7. package/lib/Cardinal/index.es.js +1 -1
  8. package/lib/Cardinal/index.es.min.js +1 -1
  9. package/lib/Eoap/index.es.js +1 -1
  10. package/lib/Eoap/index.es.min.js +1 -1
  11. package/lib/Hermite/index.es.js +1 -1
  12. package/lib/Hermite/index.es.min.js +1 -1
  13. package/lib/Matrix4/index.es.js +1 -1
  14. package/lib/Matrix4/index.es.min.js +1 -1
  15. package/lib/Mercator/index.es.js +1 -1
  16. package/lib/Mercator/index.es.min.js +1 -1
  17. package/lib/RawCanvas/index.es.js +1 -1
  18. package/lib/RawCanvas/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/assemble/index.es.js +1 -1
  30. package/lib/assemble/index.es.min.js +1 -1
  31. package/lib/getLoopColors/index.es.js +1 -1
  32. package/lib/getLoopColors/index.es.min.js +1 -1
  33. package/lib/getWebGLContext/index.es.js +1 -1
  34. package/lib/getWebGLContext/index.es.min.js +1 -1
  35. package/lib/index.umd.js +1 -1
  36. package/lib/index.umd.min.js +1 -1
  37. package/lib/initOption/index.es.js +1 -1
  38. package/lib/initOption/index.es.min.js +1 -1
  39. package/lib/mergeOption/index.es.js +1 -1
  40. package/lib/mergeOption/index.es.min.js +1 -1
  41. package/lib/move/index.es.js +1 -1
  42. package/lib/move/index.es.min.js +1 -1
  43. package/lib/rotate/index.es.js +1 -1
  44. package/lib/rotate/index.es.min.js +1 -1
  45. package/lib/ruler/index.es.js +1 -1
  46. package/lib/ruler/index.es.min.js +1 -1
  47. package/lib/scale/index.es.js +1 -1
  48. package/lib/scale/index.es.min.js +1 -1
  49. package/lib/throttle/index.es.js +1 -1
  50. package/lib/throttle/index.es.min.js +1 -1
  51. package/minialipay/ui-canvas/drawImage.js +35 -35
  52. package/minialipay/ui-canvas/index.acss +4 -4
  53. package/minialipay/ui-canvas/index.axml +3 -3
  54. package/minialipay/ui-canvas/index.d.ts +1 -1
  55. package/minialipay/ui-canvas/index.js +100 -100
  56. package/minialipay/ui-canvas/index.json +6 -6
  57. package/miniprogram/ui-canvas/index.js +117 -117
  58. package/package.json +2 -2
  59. package/src/Canvas.ts +84 -84
  60. package/src/common/canvas/default.ts +61 -61
  61. package/src/common/canvas/gradient.ts +31 -31
  62. package/src/common/canvas/index.ts +188 -188
  63. package/src/common/canvas/painter.ts +430 -430
  64. package/src/common/svg/config.ts +194 -194
  65. package/src/common/svg/default.ts +26 -26
  66. package/src/common/svg/index.ts +332 -332
  67. package/src/common/svg/tool.ts +42 -42
  68. package/src/common/type.ts +26 -26
  69. package/src/getLoopColors.ts +42 -42
  70. package/types/Canvas.d.ts +344 -344
  71. package/types/CanvasConfig.d.ts +116 -116
  72. package/types/SVGConfig.d.ts +89 -89
  73. package/types/assemble.d.ts +5 -5
  74. package/types/getLoopColors.d.ts +5 -5
  75. package/types/index.d.ts +165 -160
  76. package/types/option.d.ts +12 -12
  77. package/types/painterConfig.d.ts +4 -4
  78. package/types/uni-canvas.d.ts +3 -3
@@ -1,101 +1,101 @@
1
- import RawCanvas from "../../lib/RawCanvas/index.es.min.js";
2
- import drawImage from "./drawImage.js";
3
-
4
- // https://opendocs.alipay.com/mini/framework/custom-component-overview
5
-
6
- Component({
7
- props: {
8
- width: 300,
9
- height: 150,
10
- region: true,
11
- onDoTouchstart: () => { }
12
- },
13
- data: {
14
- uniqueid: (Math.random() * 10000).toFixed(0),
15
- help: {}
16
- },
17
- methods: {
18
- fetch() {
19
- return new Promise((resolve, reject) => {
20
-
21
- let getCanvasContext = (idName, doback) => {
22
- if (idName != 'region' || this.props.region) {
23
- my.createSelectorQuery().select('#' + idName + '-' + this.data.uniqueid).node().exec((res) => {
24
- const canvas = res[0].node;
25
- const ctx = canvas.getContext('2d');
26
-
27
- if (idName != "region") {
28
- ctx.scale(2, 2);
29
- }
30
-
31
- doback(ctx, idName != 'region' ? canvas : null);
32
-
33
- })
34
- } else {
35
- doback(null);
36
- }
37
- };
38
-
39
- getCanvasContext("painter", (painter, panvas) => {
40
- getCanvasContext("region", region => {
41
-
42
- this.data.help.instance = new RawCanvas({
43
- getContext() {
44
- return painter;
45
- }
46
- }, this.props.region ? {
47
- getContext() {
48
- return region;
49
- }
50
- } : null);
51
-
52
- this.data.help.instance.toDataURL = () => {
53
- return new Promise((resolveUrl) => {
54
- if (panvas.toDataURL) {
55
- resolveUrl(panvas.toDataURL());
56
- } else {
57
- panvas.toTempFilePath({
58
- x: 0,
59
- y: 0,
60
- width: this.props.widht,
61
- height: this.props.height,
62
- success(e) {
63
- resolveUrl(e.tempFilePath);
64
- },
65
- fail(error) {
66
- console.error(error);
67
- }
68
- });
69
- }
70
- });
71
- };
72
-
73
- this.data.help.instance.drawImage = drawImage(
74
- this.data.help.instance,
75
- this.data.help.instance.drawImage,
76
- panvas
77
- );
78
-
79
- resolve(this.data.help.instance);
80
- });
81
- });
82
-
83
- });
84
- },
85
- doit(event) {
86
- let x = event.touches[0].x;
87
- let y = event.touches[0].y;
88
-
89
- this.data.help.instance.getRegion(x, y).then((regionName) => {
90
- this.props.onDoTouchstart({
91
- name: regionName,
92
- x: x,
93
- y: y
94
- });
95
- });
96
- },
97
- doitstart(event) {
98
- this.doit(event);
99
- }
100
- }
1
+ import RawCanvas from "../../lib/RawCanvas/index.es.min.js";
2
+ import drawImage from "./drawImage.js";
3
+
4
+ // https://opendocs.alipay.com/mini/framework/custom-component-overview
5
+
6
+ Component({
7
+ props: {
8
+ width: 300,
9
+ height: 150,
10
+ region: true,
11
+ onDoTouchstart: () => { }
12
+ },
13
+ data: {
14
+ uniqueid: (Math.random() * 10000).toFixed(0),
15
+ help: {}
16
+ },
17
+ methods: {
18
+ fetch() {
19
+ return new Promise((resolve, reject) => {
20
+
21
+ let getCanvasContext = (idName, doback) => {
22
+ if (idName != 'region' || this.props.region) {
23
+ my.createSelectorQuery().select('#' + idName + '-' + this.data.uniqueid).node().exec((res) => {
24
+ const canvas = res[0].node;
25
+ const ctx = canvas.getContext('2d');
26
+
27
+ if (idName != "region") {
28
+ ctx.scale(2, 2);
29
+ }
30
+
31
+ doback(ctx, idName != 'region' ? canvas : null);
32
+
33
+ })
34
+ } else {
35
+ doback(null);
36
+ }
37
+ };
38
+
39
+ getCanvasContext("painter", (painter, panvas) => {
40
+ getCanvasContext("region", region => {
41
+
42
+ this.data.help.instance = new RawCanvas({
43
+ getContext() {
44
+ return painter;
45
+ }
46
+ }, this.props.region ? {
47
+ getContext() {
48
+ return region;
49
+ }
50
+ } : null);
51
+
52
+ this.data.help.instance.toDataURL = () => {
53
+ return new Promise((resolveUrl) => {
54
+ if (panvas.toDataURL) {
55
+ resolveUrl(panvas.toDataURL());
56
+ } else {
57
+ panvas.toTempFilePath({
58
+ x: 0,
59
+ y: 0,
60
+ width: this.props.widht,
61
+ height: this.props.height,
62
+ success(e) {
63
+ resolveUrl(e.tempFilePath);
64
+ },
65
+ fail(error) {
66
+ console.error(error);
67
+ }
68
+ });
69
+ }
70
+ });
71
+ };
72
+
73
+ this.data.help.instance.drawImage = drawImage(
74
+ this.data.help.instance,
75
+ this.data.help.instance.drawImage,
76
+ panvas
77
+ );
78
+
79
+ resolve(this.data.help.instance);
80
+ });
81
+ });
82
+
83
+ });
84
+ },
85
+ doit(event) {
86
+ let x = event.touches[0].x;
87
+ let y = event.touches[0].y;
88
+
89
+ this.data.help.instance.getRegion(x, y).then((regionName) => {
90
+ this.props.onDoTouchstart({
91
+ name: regionName,
92
+ x: x,
93
+ y: y
94
+ });
95
+ });
96
+ },
97
+ doitstart(event) {
98
+ this.doit(event);
99
+ }
100
+ }
101
101
  });
@@ -1,6 +1,6 @@
1
- {
2
- "component": true,
3
- "usingComponents": {
4
-
5
- }
6
- }
1
+ {
2
+ "component": true,
3
+ "usingComponents": {
4
+
5
+ }
6
+ }
@@ -1,117 +1,117 @@
1
- import RawCanvas from "../../lib/RawCanvas/index.es.min.js";
2
- import drawImage from "./drawImage.js";
3
-
4
- let dpr = wx.getSystemInfoSync().pixelRatio;
5
-
6
- // https://developers.weixin.qq.com/miniprogram/dev/reference/api/Component.html
7
-
8
- Component({
9
- properties: {
10
- width: {
11
- type: Number,
12
- value: 300
13
- },
14
- height: {
15
- type: Number,
16
- value: 150
17
- },
18
- region: {
19
- type: Boolean,
20
- value: true
21
- }
22
- },
23
- data: {
24
- help: {}
25
- },
26
- lifetimes: {
27
- ready() {
28
-
29
- }
30
- },
31
- methods: {
32
- fetch() {
33
- return new Promise((resolve, reject) => {
34
-
35
- let getCanvasContext = (idName, doback) => {
36
- if (idName != 'region' || this.data.region) {
37
- const query = wx.createSelectorQuery().in(this);
38
- query.select('#' + idName)
39
- .fields({ node: true, size: true })
40
- .exec((res) => {
41
- const canvas = res[0].node;
42
- const ctx = canvas.getContext('2d');
43
-
44
- canvas.width = res[0].width * (idName == "region" ? 1 : dpr);
45
- canvas.height = res[0].height * (idName == "region" ? 1 : dpr);
46
-
47
- if (idName != "region") {
48
- ctx.scale(dpr, dpr);
49
- }
50
-
51
- doback(ctx, idName != 'region' ? canvas : null);
52
- });
53
- } else {
54
- doback(null);
55
- }
56
- };
57
-
58
- getCanvasContext("painter", (painter, panvas) => {
59
- getCanvasContext("region", region => {
60
- this.data.help.instance = new RawCanvas({
61
- getContext() {
62
- return painter;
63
- }
64
- }, this.data.region ? {
65
- getContext() {
66
- return region;
67
- }
68
- } : null);
69
-
70
- this.data.help.instance.toDataURL = () => {
71
- return new Promise((resolveUrl) => {
72
- if (panvas.toDataURL) {
73
- resolveUrl(panvas.toDataURL());
74
- } else {
75
- wx.canvasToTempFilePath({
76
- canvasId: "painter",
77
- success: function (e) {
78
- resolveUrl(e.tempFilePath);
79
- },
80
- fail: function (e) {
81
- console.log(e)
82
- }
83
- }, this);
84
- }
85
- });
86
- };
87
-
88
- this.data.help.instance.drawImage = drawImage(
89
- this.data.help.instance,
90
- this.data.help.instance.drawImage,
91
- panvas
92
- );
93
-
94
- resolve(this.data.help.instance);
95
- });
96
- });
97
-
98
- });
99
- },
100
- doit(event) {
101
- let x = event.touches[0].x;
102
- let y = event.touches[0].y;
103
-
104
- this.data.help.instance.getRegion(x, y).then((regionName) => {
105
- this.triggerEvent('dotouchstart', {
106
- name: regionName,
107
- x: x,
108
- y: y
109
- })
110
- });
111
- },
112
- doitstart(event) {
113
- this.doit(event);
114
- }
115
- }
116
-
117
- });
1
+ import RawCanvas from "../../lib/RawCanvas/index.es.min.js";
2
+ import drawImage from "./drawImage.js";
3
+
4
+ let dpr = wx.getSystemInfoSync().pixelRatio;
5
+
6
+ // https://developers.weixin.qq.com/miniprogram/dev/reference/api/Component.html
7
+
8
+ Component({
9
+ properties: {
10
+ width: {
11
+ type: Number,
12
+ value: 300
13
+ },
14
+ height: {
15
+ type: Number,
16
+ value: 150
17
+ },
18
+ region: {
19
+ type: Boolean,
20
+ value: true
21
+ }
22
+ },
23
+ data: {
24
+ help: {}
25
+ },
26
+ lifetimes: {
27
+ ready() {
28
+
29
+ }
30
+ },
31
+ methods: {
32
+ fetch() {
33
+ return new Promise((resolve, reject) => {
34
+
35
+ let getCanvasContext = (idName, doback) => {
36
+ if (idName != 'region' || this.data.region) {
37
+ const query = wx.createSelectorQuery().in(this);
38
+ query.select('#' + idName)
39
+ .fields({ node: true, size: true })
40
+ .exec((res) => {
41
+ const canvas = res[0].node;
42
+ const ctx = canvas.getContext('2d');
43
+
44
+ canvas.width = res[0].width * (idName == "region" ? 1 : dpr);
45
+ canvas.height = res[0].height * (idName == "region" ? 1 : dpr);
46
+
47
+ if (idName != "region") {
48
+ ctx.scale(dpr, dpr);
49
+ }
50
+
51
+ doback(ctx, idName != 'region' ? canvas : null);
52
+ });
53
+ } else {
54
+ doback(null);
55
+ }
56
+ };
57
+
58
+ getCanvasContext("painter", (painter, panvas) => {
59
+ getCanvasContext("region", region => {
60
+ this.data.help.instance = new RawCanvas({
61
+ getContext() {
62
+ return painter;
63
+ }
64
+ }, this.data.region ? {
65
+ getContext() {
66
+ return region;
67
+ }
68
+ } : null);
69
+
70
+ this.data.help.instance.toDataURL = () => {
71
+ return new Promise((resolveUrl) => {
72
+ if (panvas.toDataURL) {
73
+ resolveUrl(panvas.toDataURL());
74
+ } else {
75
+ wx.canvasToTempFilePath({
76
+ canvasId: "painter",
77
+ success: function (e) {
78
+ resolveUrl(e.tempFilePath);
79
+ },
80
+ fail: function (e) {
81
+ console.log(e)
82
+ }
83
+ }, this);
84
+ }
85
+ });
86
+ };
87
+
88
+ this.data.help.instance.drawImage = drawImage(
89
+ this.data.help.instance,
90
+ this.data.help.instance.drawImage,
91
+ panvas
92
+ );
93
+
94
+ resolve(this.data.help.instance);
95
+ });
96
+ });
97
+
98
+ });
99
+ },
100
+ doit(event) {
101
+ let x = event.touches[0].x;
102
+ let y = event.touches[0].y;
103
+
104
+ this.data.help.instance.getRegion(x, y).then((regionName) => {
105
+ this.triggerEvent('dotouchstart', {
106
+ name: regionName,
107
+ x: x,
108
+ y: y
109
+ })
110
+ });
111
+ },
112
+ doitstart(event) {
113
+ this.doit(event);
114
+ }
115
+ }
116
+
117
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vislite",
3
- "version": "1.2.0-beta.0",
3
+ "version": "1.2.1-alpha.0",
4
4
  "description": "灵活、快速、简单的数据可视化交互式跨端前端库",
5
5
  "main": "./lib/index.umd.min.js",
6
6
  "typings": "./types/index.d.ts",
@@ -73,6 +73,6 @@
73
73
  "webpack-dev-server": "^4.7.4"
74
74
  },
75
75
  "dependencies": {
76
- "@oipage/core.js": "^0.1.0-alpha.1"
76
+ "@oipage/core.js": "^0.1.0"
77
77
  }
78
78
  }
package/src/Canvas.ts CHANGED
@@ -1,85 +1,85 @@
1
- import type CanvasType from '../types/Canvas'
2
- import type CanvasOptionType from '../types/CanvasOption'
3
-
4
- import OralCanvas from './common/canvas/index'
5
- import { initOption } from './common/option'
6
-
7
- class Canvas extends OralCanvas implements CanvasType {
8
- private __canvas: HTMLCanvasElement
9
- private __el: HTMLElement
10
- constructor(el: HTMLElement | null, option: CanvasOptionType = {}, width: number = 0, height: number = 0) {
11
- if (!el) {
12
- throw new Error("VISLite Canvas:The mount point requires an HTMLElement type but encountered null.")
13
- }
14
-
15
- option = initOption(option, {
16
- region: true,
17
- willReadFrequently: false
18
- })
19
-
20
- width = width || el.clientWidth
21
- height = height || el.clientHeight
22
-
23
- let ViewCanvas: HTMLCanvasElement, RegionCanvas: HTMLCanvasElement | null = null
24
-
25
- const _el = el as any
26
-
27
- // 如果已经初始化过了
28
- if (_el._vislite_canvas_) {
29
- ViewCanvas = _el._vislite_canvas_[0]
30
- RegionCanvas = _el._vislite_canvas_[1]
31
- }
32
-
33
- // 否则就初始化
34
- else {
35
- ViewCanvas = document.createElement('canvas')
36
- el.appendChild(ViewCanvas)
37
-
38
- if (option.region) {
39
- RegionCanvas = document.createElement('canvas')
40
- }
41
-
42
- _el._vislite_canvas_ = [ViewCanvas, RegionCanvas]
43
-
44
- el.setAttribute('vislite', 'Canvas')
45
- }
46
-
47
- // 设置画布大小
48
- const canvasArray = [RegionCanvas, ViewCanvas]
49
- for (let index = 0; index < canvasArray.length; index++) {
50
- const canvas = canvasArray[index]
51
- if (canvas) {
52
- canvas.style.width = width + "px"
53
- canvas.setAttribute('width', (index * width + width) + "")
54
-
55
- canvas.style.height = height + "px"
56
- canvas.setAttribute('height', (index * height + height) + "")
57
- }
58
- }
59
-
60
- super(ViewCanvas, RegionCanvas, {
61
- willReadFrequently: option.willReadFrequently,
62
- }, 2)
63
-
64
- this.__canvas = ViewCanvas
65
- this.__el = el
66
- this.painter.scale(2, 2)
67
- }
68
-
69
- toDataURL(): Promise<string> {
70
- return new Promise(resolve => {
71
- resolve(this.__canvas.toDataURL())
72
- })
73
- }
74
-
75
- bind(eventName: string, callback: (regionName: string, x: number, y: number) => void) {
76
- this.__el.addEventListener(eventName, (event: any) => {
77
- this.getRegion(event.offsetX, event.offsetY).then(regionName => {
78
- callback(regionName, event.offsetX, event.offsetY)
79
- })
80
- })
81
- return this
82
- }
83
- }
84
-
1
+ import type CanvasType from '../types/Canvas'
2
+ import type CanvasOptionType from '../types/CanvasOption'
3
+
4
+ import OralCanvas from './common/canvas/index'
5
+ import { initOption } from './common/option'
6
+
7
+ class Canvas extends OralCanvas implements CanvasType {
8
+ private __canvas: HTMLCanvasElement
9
+ private __el: HTMLElement
10
+ constructor(el: HTMLElement | null, option: CanvasOptionType = {}, width: number = 0, height: number = 0) {
11
+ if (!el) {
12
+ throw new Error("VISLite Canvas:The mount point requires an HTMLElement type but encountered null.")
13
+ }
14
+
15
+ option = initOption(option, {
16
+ region: true,
17
+ willReadFrequently: false
18
+ })
19
+
20
+ width = width || el.clientWidth
21
+ height = height || el.clientHeight
22
+
23
+ let ViewCanvas: HTMLCanvasElement, RegionCanvas: HTMLCanvasElement | null = null
24
+
25
+ const _el = el as any
26
+
27
+ // 如果已经初始化过了
28
+ if (_el._vislite_canvas_) {
29
+ ViewCanvas = _el._vislite_canvas_[0]
30
+ RegionCanvas = _el._vislite_canvas_[1]
31
+ }
32
+
33
+ // 否则就初始化
34
+ else {
35
+ ViewCanvas = document.createElement('canvas')
36
+ el.appendChild(ViewCanvas)
37
+
38
+ if (option.region) {
39
+ RegionCanvas = document.createElement('canvas')
40
+ }
41
+
42
+ _el._vislite_canvas_ = [ViewCanvas, RegionCanvas]
43
+
44
+ el.setAttribute('vislite', 'Canvas')
45
+ }
46
+
47
+ // 设置画布大小
48
+ const canvasArray = [RegionCanvas, ViewCanvas]
49
+ for (let index = 0; index < canvasArray.length; index++) {
50
+ const canvas = canvasArray[index]
51
+ if (canvas) {
52
+ canvas.style.width = width + "px"
53
+ canvas.setAttribute('width', (index * width + width) + "")
54
+
55
+ canvas.style.height = height + "px"
56
+ canvas.setAttribute('height', (index * height + height) + "")
57
+ }
58
+ }
59
+
60
+ super(ViewCanvas, RegionCanvas, {
61
+ willReadFrequently: option.willReadFrequently,
62
+ }, 2)
63
+
64
+ this.__canvas = ViewCanvas
65
+ this.__el = el
66
+ this.painter.scale(2, 2)
67
+ }
68
+
69
+ toDataURL(): Promise<string> {
70
+ return new Promise(resolve => {
71
+ resolve(this.__canvas.toDataURL())
72
+ })
73
+ }
74
+
75
+ bind(eventName: string, callback: (regionName: string, x: number, y: number) => void) {
76
+ this.__el.addEventListener(eventName, (event: any) => {
77
+ this.getRegion(event.offsetX, event.offsetY).then(regionName => {
78
+ callback(regionName, event.offsetX, event.offsetY)
79
+ })
80
+ })
81
+ return this
82
+ }
83
+ }
84
+
85
85
  export default Canvas