vislite 1.2.0-alpha.2 → 1.2.0-alpha.4

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 (72) hide show
  1. package/CHANGELOG +266 -254
  2. package/lib/Buffer/index.es.js +1 -1
  3. package/lib/Buffer/index.es.min.js +1 -1
  4. package/lib/Canvas/index.es.js +16 -5
  5. package/lib/Canvas/index.es.min.js +2 -2
  6. package/lib/Cardinal/index.es.js +1 -1
  7. package/lib/Cardinal/index.es.min.js +1 -1
  8. package/lib/Eoap/index.es.js +1 -1
  9. package/lib/Eoap/index.es.min.js +1 -1
  10. package/lib/Hermite/index.es.js +1 -1
  11. package/lib/Hermite/index.es.min.js +1 -1
  12. package/lib/Matrix4/index.es.js +1 -1
  13. package/lib/Matrix4/index.es.min.js +1 -1
  14. package/lib/Mercator/index.es.js +1 -1
  15. package/lib/Mercator/index.es.min.js +1 -1
  16. package/lib/RawCanvas/index.es.js +15 -4
  17. package/lib/RawCanvas/index.es.min.js +2 -2
  18. package/lib/SVG/index.es.js +12 -8
  19. package/lib/SVG/index.es.min.js +2 -2
  20. package/lib/Shader/index.es.js +1 -1
  21. package/lib/Shader/index.es.min.js +1 -1
  22. package/lib/Texture/index.es.js +1 -1
  23. package/lib/Texture/index.es.min.js +1 -1
  24. package/lib/TreeLayout/index.es.js +38 -8
  25. package/lib/TreeLayout/index.es.min.js +2 -2
  26. package/lib/animation/index.es.js +38 -8
  27. package/lib/animation/index.es.min.js +2 -2
  28. package/lib/assemble/index.es.js +1 -1
  29. package/lib/assemble/index.es.min.js +1 -1
  30. package/lib/getLoopColors/index.es.js +1 -1
  31. package/lib/getLoopColors/index.es.min.js +1 -1
  32. package/lib/getWebGLContext/index.es.js +1 -1
  33. package/lib/getWebGLContext/index.es.min.js +1 -1
  34. package/lib/index.umd.js +88 -36
  35. package/lib/index.umd.min.js +2 -2
  36. package/lib/initOption/index.es.js +1 -1
  37. package/lib/initOption/index.es.min.js +1 -1
  38. package/lib/mergeOption/index.es.js +1 -1
  39. package/lib/mergeOption/index.es.min.js +1 -1
  40. package/lib/move/index.es.js +1 -1
  41. package/lib/move/index.es.min.js +1 -1
  42. package/lib/rotate/index.es.js +1 -1
  43. package/lib/rotate/index.es.min.js +1 -1
  44. package/lib/ruler/index.es.js +1 -1
  45. package/lib/ruler/index.es.min.js +1 -1
  46. package/lib/scale/index.es.js +1 -1
  47. package/lib/scale/index.es.min.js +1 -1
  48. package/lib/throttle/index.es.js +25 -25
  49. package/lib/throttle/index.es.min.js +2 -2
  50. package/miniprogram/ui-canvas/index.js +115 -115
  51. package/package/animation/index.ts +1 -1
  52. package/package/throttle/index.ts +1 -1
  53. package/package.json +7 -2
  54. package/src/Canvas.ts +84 -84
  55. package/src/common/canvas/gradient.ts +32 -24
  56. package/src/common/canvas/index.ts +182 -177
  57. package/src/common/canvas/painter.ts +9 -3
  58. package/src/common/svg/config.ts +194 -190
  59. package/src/common/svg/index.ts +350 -347
  60. package/src/common/svg/tool.ts +42 -44
  61. package/src/layout/TreeLayout.ts +1 -1
  62. package/types/Canvas.d.ts +10 -1
  63. package/types/CanvasConfig.d.ts +116 -106
  64. package/types/SVGConfig.d.ts +89 -79
  65. package/types/animation.d.ts +2 -6
  66. package/types/index.d.ts +160 -158
  67. package/types/painterConfig.d.ts +5 -3
  68. package/types/throttle.d.ts +2 -4
  69. package/types/throttleOption.d.ts +1 -22
  70. package/types/uni-canvas.d.ts +4 -0
  71. package/src/animation.ts +0 -99
  72. package/src/throttle.ts +0 -53
@@ -1,115 +1,115 @@
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
- Component({
7
- properties: {
8
- width: {
9
- type: Number,
10
- default: 300
11
- },
12
- height: {
13
- type: Number,
14
- default: 150
15
- },
16
- region: {
17
- type: Boolean,
18
- default: true
19
- }
20
- },
21
- data: {
22
- help: {}
23
- },
24
- lifetimes: {
25
- ready() {
26
-
27
- }
28
- },
29
- methods: {
30
- fetch() {
31
- return new Promise((resolve, reject) => {
32
-
33
- let getCanvasContext = (idName, doback) => {
34
- if (idName != 'region' || this.data.region) {
35
- const query = wx.createSelectorQuery().in(this);
36
- query.select('#' + idName)
37
- .fields({ node: true, size: true })
38
- .exec((res) => {
39
- const canvas = res[0].node;
40
- const ctx = canvas.getContext('2d');
41
-
42
- canvas.width = res[0].width * (idName == "region" ? 1 : dpr);
43
- canvas.height = res[0].height * (idName == "region" ? 1 : dpr);
44
-
45
- if (idName != "region") {
46
- ctx.scale(dpr, dpr);
47
- }
48
-
49
- doback(ctx, idName != 'region' ? canvas : null);
50
- });
51
- } else {
52
- doback(null);
53
- }
54
- };
55
-
56
- getCanvasContext("painter", (painter, panvas) => {
57
- getCanvasContext("region", region => {
58
- this.data.help.instance = new RawCanvas({
59
- getContext() {
60
- return painter;
61
- }
62
- }, this.data.region ? {
63
- getContext() {
64
- return region;
65
- }
66
- } : null);
67
-
68
- this.data.help.instance.toDataURL = () => {
69
- return new Promise((resolveUrl) => {
70
- if (panvas.toDataURL) {
71
- resolveUrl(panvas.toDataURL());
72
- } else {
73
- wx.canvasToTempFilePath({
74
- canvasId: "painter",
75
- success: function (e) {
76
- resolveUrl(e.tempFilePath);
77
- },
78
- fail: function (e) {
79
- console.log(e)
80
- }
81
- }, this);
82
- }
83
- });
84
- };
85
-
86
- this.data.help.instance.drawImage = drawImage(
87
- this.data.help.instance,
88
- this.data.help.instance.drawImage,
89
- panvas
90
- );
91
-
92
- resolve(this.data.help.instance);
93
- });
94
- });
95
-
96
- });
97
- },
98
- doit(event) {
99
- let x = event.touches[0].x;
100
- let y = event.touches[0].y;
101
-
102
- this.data.help.instance.getRegion(x, y).then((regionName) => {
103
- this.triggerEvent('dotouchstart', {
104
- name: regionName,
105
- x: x,
106
- y: y
107
- })
108
- });
109
- },
110
- doitstart(event) {
111
- this.doit(event);
112
- }
113
- }
114
-
115
- });
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
+ Component({
7
+ properties: {
8
+ width: {
9
+ type: Number,
10
+ default: 300
11
+ },
12
+ height: {
13
+ type: Number,
14
+ default: 150
15
+ },
16
+ region: {
17
+ type: Boolean,
18
+ default: false
19
+ }
20
+ },
21
+ data: {
22
+ help: {}
23
+ },
24
+ lifetimes: {
25
+ ready() {
26
+
27
+ }
28
+ },
29
+ methods: {
30
+ fetch() {
31
+ return new Promise((resolve, reject) => {
32
+
33
+ let getCanvasContext = (idName, doback) => {
34
+ if (idName != 'region' || this.data.region) {
35
+ const query = wx.createSelectorQuery().in(this);
36
+ query.select('#' + idName)
37
+ .fields({ node: true, size: true })
38
+ .exec((res) => {
39
+ const canvas = res[0].node;
40
+ const ctx = canvas.getContext('2d');
41
+
42
+ canvas.width = res[0].width * (idName == "region" ? 1 : dpr);
43
+ canvas.height = res[0].height * (idName == "region" ? 1 : dpr);
44
+
45
+ if (idName != "region") {
46
+ ctx.scale(dpr, dpr);
47
+ }
48
+
49
+ doback(ctx, idName != 'region' ? canvas : null);
50
+ });
51
+ } else {
52
+ doback(null);
53
+ }
54
+ };
55
+
56
+ getCanvasContext("painter", (painter, panvas) => {
57
+ getCanvasContext("region", region => {
58
+ this.data.help.instance = new RawCanvas({
59
+ getContext() {
60
+ return painter;
61
+ }
62
+ }, this.data.region ? {
63
+ getContext() {
64
+ return region;
65
+ }
66
+ } : null);
67
+
68
+ this.data.help.instance.toDataURL = () => {
69
+ return new Promise((resolveUrl) => {
70
+ if (panvas.toDataURL) {
71
+ resolveUrl(panvas.toDataURL());
72
+ } else {
73
+ wx.canvasToTempFilePath({
74
+ canvasId: "painter",
75
+ success: function (e) {
76
+ resolveUrl(e.tempFilePath);
77
+ },
78
+ fail: function (e) {
79
+ console.log(e)
80
+ }
81
+ }, this);
82
+ }
83
+ });
84
+ };
85
+
86
+ this.data.help.instance.drawImage = drawImage(
87
+ this.data.help.instance,
88
+ this.data.help.instance.drawImage,
89
+ panvas
90
+ );
91
+
92
+ resolve(this.data.help.instance);
93
+ });
94
+ });
95
+
96
+ });
97
+ },
98
+ doit(event) {
99
+ let x = event.touches[0].x;
100
+ let y = event.touches[0].y;
101
+
102
+ this.data.help.instance.getRegion(x, y).then((regionName) => {
103
+ this.triggerEvent('dotouchstart', {
104
+ name: regionName,
105
+ x: x,
106
+ y: y
107
+ })
108
+ });
109
+ },
110
+ doitstart(event) {
111
+ this.doit(event);
112
+ }
113
+ }
114
+
115
+ });
@@ -1,3 +1,3 @@
1
- import animation from "../../src/animation"
1
+ import { animation } from "@oipage/core.js/src/animation/index"
2
2
 
3
3
  export default animation
@@ -1,3 +1,3 @@
1
- import throttle from "../../src/throttle"
1
+ import { throttle } from "@oipage/core.js/src/throttle/index"
2
2
 
3
3
  export default throttle
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "vislite",
3
- "version": "1.2.0-alpha.2",
3
+ "version": "1.2.0-alpha.4",
4
4
  "description": "灵活、快速、简单的数据可视化交互式跨端前端库",
5
5
  "main": "./lib/index.umd.min.js",
6
6
  "typings": "./types/index.d.ts",
7
7
  "unpkg": "./lib/index.umd.min.js",
8
- "jsdelivr":"./lib/index.umd.min.js",
8
+ "jsdelivr": "./lib/index.umd.min.js",
9
9
  "sideEffects": false,
10
10
  "scripts": {
11
11
  "init": "npm install && devby --copy ./node_modules/pageby/dist/pageby.min.js ./docs/js/min/pageby.min.js",
@@ -50,6 +50,8 @@
50
50
  },
51
51
  "homepage": "https://oi-contrib.github.io/VISLite",
52
52
  "devDependencies": {
53
+ "@rollup/plugin-commonjs": "^25.0.7",
54
+ "@rollup/plugin-node-resolve": "^15.2.3",
53
55
  "@rollup/plugin-typescript": "^11.1.0",
54
56
  "@types/jasmine": "^4.3.1",
55
57
  "@typescript-eslint/eslint-plugin": "^6.14.0",
@@ -69,5 +71,8 @@
69
71
  "webpack": "^5.70.0",
70
72
  "webpack-cli": "^4.9.2",
71
73
  "webpack-dev-server": "^4.7.4"
74
+ },
75
+ "dependencies": {
76
+ "@oipage/core.js": "^0.1.0-alpha.1"
72
77
  }
73
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) => void) {
76
- this.__el.addEventListener(eventName, (event: any) => {
77
- this.getRegion(event.offsetX, event.offsetY).then(regionName => {
78
- callback(regionName)
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
@@ -1,24 +1,32 @@
1
- let enhanceGradient = function (gradient: CanvasGradient) {
2
- const enhanceGradient = {
3
- "value": function () {
4
- return gradient
5
- },
6
- "setColor": function (stop: number, color: string) {
7
- gradient.addColorStop(stop, color)
8
- return enhanceGradient
9
- }
10
- };
11
- return enhanceGradient
12
- }
13
-
14
- // 线性渐变
15
- export const linearGradient = function (painter: CanvasRenderingContext2D, x0: number, y0: number, x1: number, y1: number) {
16
- const gradient = painter.createLinearGradient(x0, y0, x1, y1)
17
- return enhanceGradient(gradient)
18
- }
19
-
20
- // 环形渐变
21
- export const radialGradient = function (painter: CanvasRenderingContext2D, cx: number, cy: number, r: number) {
22
- const gradient = painter.createRadialGradient(cx, cy, 0, cx, cy, r)
23
- return enhanceGradient(gradient)
24
- }
1
+ let enhanceGradient = function (gradient: CanvasGradient, calcStop?: Function) {
2
+ const enhanceGradient = {
3
+ "value": function () {
4
+ return gradient
5
+ },
6
+ "setColor": function (stop: number, color: string) {
7
+ gradient.addColorStop(calcStop ? calcStop(stop) : stop, color)
8
+ return enhanceGradient
9
+ }
10
+ };
11
+ return enhanceGradient
12
+ }
13
+
14
+ // 线性渐变
15
+ export const linearGradient = function (painter: CanvasRenderingContext2D, x0: number, y0: number, x1: number, y1: number) {
16
+ const gradient = painter.createLinearGradient(x0, y0, x1, y1)
17
+ return enhanceGradient(gradient)
18
+ }
19
+
20
+ // 环形渐变
21
+ export const radialGradient = function (painter: CanvasRenderingContext2D, cx: number, cy: number, r: number) {
22
+ const gradient = painter.createRadialGradient(cx, cy, 0, cx, cy, r)
23
+ return enhanceGradient(gradient)
24
+ }
25
+
26
+ // 角度渐变
27
+ export const conicGradient = function (painter: CanvasRenderingContext2D, cx: number, cy: number, startDeg: number, deg?: number) {
28
+ const gradient = painter.createConicGradient(startDeg, cx, cy)
29
+ return enhanceGradient(gradient, deg ? (stop: number) => {
30
+ return deg / (Math.PI * 2) * stop
31
+ } : undefined)
32
+ }