vislite 1.4.0-alpha.0 → 1.4.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.
- package/CHANGELOG +307 -307
- package/lib/BarLayout/index.es.js +437 -437
- package/lib/BarLayout/index.es.min.js +2 -2
- package/lib/Buffer/index.es.js +35 -35
- package/lib/Buffer/index.es.min.js +1 -1
- package/lib/Canvas/index.es.js +774 -774
- package/lib/Canvas/index.es.min.js +1 -1
- package/lib/Cardinal/index.es.js +90 -90
- package/lib/Cardinal/index.es.min.js +1 -1
- package/lib/Eoap/index.es.js +33 -33
- package/lib/Eoap/index.es.min.js +1 -1
- package/lib/Hermite/index.es.js +35 -35
- package/lib/Hermite/index.es.min.js +1 -1
- package/lib/MapCoordinate/index.es.js +199 -199
- package/lib/MapCoordinate/index.es.min.js +1 -1
- package/lib/Matrix4/index.es.js +124 -124
- package/lib/Matrix4/index.es.min.js +1 -1
- package/lib/Mercator/index.es.js +19 -19
- package/lib/Mercator/index.es.min.js +1 -1
- package/lib/PieLayout/index.es.js +213 -213
- package/lib/PieLayout/index.es.min.js +2 -2
- package/lib/RawCanvas/index.es.js +704 -704
- package/lib/RawCanvas/index.es.min.js +1 -1
- package/lib/SVG/index.es.js +514 -514
- package/lib/SVG/index.es.min.js +1 -1
- package/lib/Shader/index.es.js +35 -35
- package/lib/Shader/index.es.min.js +1 -1
- package/lib/Texture/index.es.js +53 -53
- package/lib/Texture/index.es.min.js +1 -1
- package/lib/TreeLayout/index.es.js +397 -397
- package/lib/TreeLayout/index.es.min.js +2 -2
- package/lib/animation/index.es.js +110 -106
- package/lib/animation/index.es.min.js +3 -3
- package/lib/assemble/index.es.js +17 -17
- package/lib/assemble/index.es.min.js +1 -1
- package/lib/getLoopColors/index.es.js +35 -35
- package/lib/getLoopColors/index.es.min.js +1 -1
- package/lib/getWebGLContext/index.es.js +62 -62
- package/lib/getWebGLContext/index.es.min.js +1 -1
- package/lib/index.umd.js +2795 -2791
- package/lib/index.umd.min.js +5 -5
- package/lib/initOption/index.es.js +6 -6
- package/lib/initOption/index.es.min.js +1 -1
- package/lib/mergeOption/index.es.js +34 -34
- package/lib/mergeOption/index.es.min.js +1 -1
- package/lib/move/index.es.js +7 -7
- package/lib/move/index.es.min.js +1 -1
- package/lib/rotate/index.es.js +7 -7
- package/lib/rotate/index.es.min.js +1 -1
- package/lib/ruler/index.es.js +137 -137
- package/lib/ruler/index.es.min.js +1 -1
- package/lib/scale/index.es.js +6 -6
- package/lib/scale/index.es.min.js +1 -1
- package/lib/throttle/index.es.js +51 -51
- package/lib/throttle/index.es.min.js +2 -2
- package/package/BarLayout/index.ts +2 -2
- package/package/PieLayout/index.ts +2 -2
- package/package/animation/index.ts +6 -3
- package/package/index.ts +84 -84
- package/package/throttle/index.ts +2 -2
- package/package.json +75 -75
- package/src/SVG.ts +55 -55
- package/src/common/canvas/gradient.ts +31 -31
- package/src/common/svg/default.ts +29 -29
- package/src/common/svg/gradient.ts +53 -53
- package/src/common/svg/index.ts +332 -332
- package/src/common/tree/toPlainTree.ts +135 -135
- package/src/common/webgl/texture.ts +98 -98
- package/src/layout/BarLayout.ts +248 -248
- package/src/layout/PieLayout.ts +141 -141
- package/src/layout/TreeLayout.ts +197 -197
- package/types/Bar.d.ts +91 -91
- package/types/BarConfig.d.ts +4 -4
- package/types/BarLayout.d.ts +48 -48
- package/types/BarOption.d.ts +31 -31
- package/types/Pie.d.ts +73 -73
- package/types/PieConfig.d.ts +26 -26
- package/types/PieLayout.d.ts +40 -40
- package/types/PieOption.d.ts +21 -21
- package/types/SVG.d.ts +247 -247
- package/types/animation.d.ts +11 -5
- package/types/index.d.ts +195 -195
- package/types/throttle.d.ts +5 -5
package/package.json
CHANGED
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "vislite",
|
|
3
|
-
"version": "1.4.0
|
|
4
|
-
"description": "灵活、快速、简单的数据可视化交互式跨端前端库",
|
|
5
|
-
"main": "./lib/index.umd.min.js",
|
|
6
|
-
"typings": "./types/index.d.ts",
|
|
7
|
-
"unpkg": "./lib/index.umd.min.js",
|
|
8
|
-
"jsdelivr": "./lib/index.umd.min.js",
|
|
9
|
-
"sideEffects": false,
|
|
10
|
-
"scripts": {
|
|
11
|
-
"dev": "webpack serve --config ./build/webpack.config.js",
|
|
12
|
-
"build": "oipage-cli disk -d ./lib && node ./build/pkg.js",
|
|
13
|
-
"test": "karma start ./build/karma.config.js",
|
|
14
|
-
"lint": "eslint src/**/*.ts --fix"
|
|
15
|
-
},
|
|
16
|
-
"miniprogram": ".",
|
|
17
|
-
"repository": {
|
|
18
|
-
"type": "git",
|
|
19
|
-
"url": "git+https://github.com/oi-contrib/VISLite.git"
|
|
20
|
-
},
|
|
21
|
-
"keywords": [
|
|
22
|
-
"svg",
|
|
23
|
-
"webgl",
|
|
24
|
-
"typescript",
|
|
25
|
-
"canvas",
|
|
26
|
-
"vue",
|
|
27
|
-
"uniapp",
|
|
28
|
-
"miniprogram",
|
|
29
|
-
"image2d",
|
|
30
|
-
"image3d",
|
|
31
|
-
"oi-contrib",
|
|
32
|
-
"vislite",
|
|
33
|
-
"d3",
|
|
34
|
-
"zxl20070701",
|
|
35
|
-
"three",
|
|
36
|
-
"echarts",
|
|
37
|
-
"datav",
|
|
38
|
-
"webgpu",
|
|
39
|
-
"layout",
|
|
40
|
-
"algorithm"
|
|
41
|
-
],
|
|
42
|
-
"author": {
|
|
43
|
-
"name": "zxl20070701",
|
|
44
|
-
"url": "https://zxl20070701.github.io/notebook/home.html"
|
|
45
|
-
},
|
|
46
|
-
"license": "MIT",
|
|
47
|
-
"bugs": {
|
|
48
|
-
"url": "https://github.com/oi-contrib/VISLite/issues"
|
|
49
|
-
},
|
|
50
|
-
"homepage": "https://oi-contrib.github.io/VISLite",
|
|
51
|
-
"devDependencies": {
|
|
52
|
-
"@rollup/plugin-commonjs": "^25.0.7",
|
|
53
|
-
"@rollup/plugin-node-resolve": "^15.2.3",
|
|
54
|
-
"@rollup/plugin-typescript": "^11.1.0",
|
|
55
|
-
"@types/jasmine": "^4.3.1",
|
|
56
|
-
"@typescript-eslint/eslint-plugin": "^6.14.0",
|
|
57
|
-
"@typescript-eslint/parser": "^6.14.0",
|
|
58
|
-
"eslint": "^8.56.0",
|
|
59
|
-
"karma": "^6.3.10",
|
|
60
|
-
"karma-chrome-launcher": "^3.1.0",
|
|
61
|
-
"karma-jasmine": "^4.0.1",
|
|
62
|
-
"karma-webpack": "^5.0.0",
|
|
63
|
-
"rollup": "^3.20.6",
|
|
64
|
-
"terser": "^5.17.1",
|
|
65
|
-
"ts-loader": "^9.2.8",
|
|
66
|
-
"tslib": "^2.5.0",
|
|
67
|
-
"typescript": "^4.6.2",
|
|
68
|
-
"webpack": "^5.70.0",
|
|
69
|
-
"webpack-cli": "^4.9.2",
|
|
70
|
-
"webpack-dev-server": "^4.7.4"
|
|
71
|
-
},
|
|
72
|
-
"dependencies": {
|
|
73
|
-
"oipage": "^1.
|
|
74
|
-
}
|
|
75
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "vislite",
|
|
3
|
+
"version": "1.4.0",
|
|
4
|
+
"description": "灵活、快速、简单的数据可视化交互式跨端前端库",
|
|
5
|
+
"main": "./lib/index.umd.min.js",
|
|
6
|
+
"typings": "./types/index.d.ts",
|
|
7
|
+
"unpkg": "./lib/index.umd.min.js",
|
|
8
|
+
"jsdelivr": "./lib/index.umd.min.js",
|
|
9
|
+
"sideEffects": false,
|
|
10
|
+
"scripts": {
|
|
11
|
+
"dev": "webpack serve --config ./build/webpack.config.js",
|
|
12
|
+
"build": "oipage-cli disk -d ./lib && node ./build/pkg.js",
|
|
13
|
+
"test": "karma start ./build/karma.config.js",
|
|
14
|
+
"lint": "eslint src/**/*.ts --fix"
|
|
15
|
+
},
|
|
16
|
+
"miniprogram": ".",
|
|
17
|
+
"repository": {
|
|
18
|
+
"type": "git",
|
|
19
|
+
"url": "git+https://github.com/oi-contrib/VISLite.git"
|
|
20
|
+
},
|
|
21
|
+
"keywords": [
|
|
22
|
+
"svg",
|
|
23
|
+
"webgl",
|
|
24
|
+
"typescript",
|
|
25
|
+
"canvas",
|
|
26
|
+
"vue",
|
|
27
|
+
"uniapp",
|
|
28
|
+
"miniprogram",
|
|
29
|
+
"image2d",
|
|
30
|
+
"image3d",
|
|
31
|
+
"oi-contrib",
|
|
32
|
+
"vislite",
|
|
33
|
+
"d3",
|
|
34
|
+
"zxl20070701",
|
|
35
|
+
"three",
|
|
36
|
+
"echarts",
|
|
37
|
+
"datav",
|
|
38
|
+
"webgpu",
|
|
39
|
+
"layout",
|
|
40
|
+
"algorithm"
|
|
41
|
+
],
|
|
42
|
+
"author": {
|
|
43
|
+
"name": "zxl20070701",
|
|
44
|
+
"url": "https://zxl20070701.github.io/notebook/home.html"
|
|
45
|
+
},
|
|
46
|
+
"license": "MIT",
|
|
47
|
+
"bugs": {
|
|
48
|
+
"url": "https://github.com/oi-contrib/VISLite/issues"
|
|
49
|
+
},
|
|
50
|
+
"homepage": "https://oi-contrib.github.io/VISLite",
|
|
51
|
+
"devDependencies": {
|
|
52
|
+
"@rollup/plugin-commonjs": "^25.0.7",
|
|
53
|
+
"@rollup/plugin-node-resolve": "^15.2.3",
|
|
54
|
+
"@rollup/plugin-typescript": "^11.1.0",
|
|
55
|
+
"@types/jasmine": "^4.3.1",
|
|
56
|
+
"@typescript-eslint/eslint-plugin": "^6.14.0",
|
|
57
|
+
"@typescript-eslint/parser": "^6.14.0",
|
|
58
|
+
"eslint": "^8.56.0",
|
|
59
|
+
"karma": "^6.3.10",
|
|
60
|
+
"karma-chrome-launcher": "^3.1.0",
|
|
61
|
+
"karma-jasmine": "^4.0.1",
|
|
62
|
+
"karma-webpack": "^5.0.0",
|
|
63
|
+
"rollup": "^3.20.6",
|
|
64
|
+
"terser": "^5.17.1",
|
|
65
|
+
"ts-loader": "^9.2.8",
|
|
66
|
+
"tslib": "^2.5.0",
|
|
67
|
+
"typescript": "^4.6.2",
|
|
68
|
+
"webpack": "^5.70.0",
|
|
69
|
+
"webpack-cli": "^4.9.2",
|
|
70
|
+
"webpack-dev-server": "^4.7.4"
|
|
71
|
+
},
|
|
72
|
+
"dependencies": {
|
|
73
|
+
"oipage": "^1.3.0"
|
|
74
|
+
}
|
|
75
|
+
}
|
package/src/SVG.ts
CHANGED
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
import type SVGType from '../types/SVG'
|
|
2
|
-
|
|
3
|
-
import OralSVG from './common/svg/index'
|
|
4
|
-
|
|
5
|
-
class SVG extends OralSVG implements SVGType {
|
|
6
|
-
private __el: HTMLElement
|
|
7
|
-
constructor(el: HTMLElement | null) {
|
|
8
|
-
if (!el) {
|
|
9
|
-
throw new Error("VISLite SVG:The mount point requires an HTMLElement type but encountered null.")
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
const width = el.clientWidth, height = el.clientHeight
|
|
13
|
-
|
|
14
|
-
const ViewSVG = document.createElementNS("http://www.w3.org/2000/svg", 'svg')
|
|
15
|
-
el.appendChild(ViewSVG)
|
|
16
|
-
|
|
17
|
-
ViewSVG.setAttribute("width", width + "")
|
|
18
|
-
ViewSVG.setAttribute("height", height + "")
|
|
19
|
-
|
|
20
|
-
ViewSVG.setAttribute("viewBox", "0 0 " + width + " " + height)
|
|
21
|
-
|
|
22
|
-
super(ViewSVG)
|
|
23
|
-
|
|
24
|
-
this.__el = el
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
toDataURL(): Promise<string> {
|
|
28
|
-
return new Promise(resolve => {
|
|
29
|
-
const width = this.__el.clientWidth, height = this.__el.clientHeight
|
|
30
|
-
|
|
31
|
-
let img = document.createElement('img');
|
|
32
|
-
|
|
33
|
-
img.setAttribute('width', width + "");
|
|
34
|
-
img.setAttribute('height', height + "");
|
|
35
|
-
let base64_svg = "data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' width='" + width + "' height='" + height + "'>" + this.__svg.innerHTML.replace(/"/g, "'") + "</svg>";
|
|
36
|
-
img.setAttribute('src', base64_svg);
|
|
37
|
-
|
|
38
|
-
setTimeout(function () {
|
|
39
|
-
|
|
40
|
-
// 准备画布
|
|
41
|
-
let canvas = document.createElement('canvas');
|
|
42
|
-
canvas.setAttribute('width', width + "");
|
|
43
|
-
canvas.setAttribute('height', height + "");
|
|
44
|
-
|
|
45
|
-
let painter = canvas.getContext('2d');
|
|
46
|
-
|
|
47
|
-
// 绘制截图
|
|
48
|
-
if (painter) painter.drawImage(img, 0, 0, width, height);
|
|
49
|
-
|
|
50
|
-
resolve(canvas.toDataURL());
|
|
51
|
-
}, 100);
|
|
52
|
-
})
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
1
|
+
import type SVGType from '../types/SVG'
|
|
2
|
+
|
|
3
|
+
import OralSVG from './common/svg/index'
|
|
4
|
+
|
|
5
|
+
class SVG extends OralSVG implements SVGType {
|
|
6
|
+
private __el: HTMLElement
|
|
7
|
+
constructor(el: HTMLElement | null) {
|
|
8
|
+
if (!el) {
|
|
9
|
+
throw new Error("VISLite SVG:The mount point requires an HTMLElement type but encountered null.")
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const width = el.clientWidth, height = el.clientHeight
|
|
13
|
+
|
|
14
|
+
const ViewSVG = document.createElementNS("http://www.w3.org/2000/svg", 'svg')
|
|
15
|
+
el.appendChild(ViewSVG)
|
|
16
|
+
|
|
17
|
+
ViewSVG.setAttribute("width", width + "")
|
|
18
|
+
ViewSVG.setAttribute("height", height + "")
|
|
19
|
+
|
|
20
|
+
ViewSVG.setAttribute("viewBox", "0 0 " + width + " " + height)
|
|
21
|
+
|
|
22
|
+
super(ViewSVG)
|
|
23
|
+
|
|
24
|
+
this.__el = el
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
toDataURL(): Promise<string> {
|
|
28
|
+
return new Promise(resolve => {
|
|
29
|
+
const width = this.__el.clientWidth, height = this.__el.clientHeight
|
|
30
|
+
|
|
31
|
+
let img = document.createElement('img');
|
|
32
|
+
|
|
33
|
+
img.setAttribute('width', width + "");
|
|
34
|
+
img.setAttribute('height', height + "");
|
|
35
|
+
let base64_svg = "data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' width='" + width + "' height='" + height + "'>" + this.__svg.innerHTML.replace(/"/g, "'") + "</svg>";
|
|
36
|
+
img.setAttribute('src', base64_svg);
|
|
37
|
+
|
|
38
|
+
setTimeout(function () {
|
|
39
|
+
|
|
40
|
+
// 准备画布
|
|
41
|
+
let canvas = document.createElement('canvas');
|
|
42
|
+
canvas.setAttribute('width', width + "");
|
|
43
|
+
canvas.setAttribute('height', height + "");
|
|
44
|
+
|
|
45
|
+
let painter = canvas.getContext('2d');
|
|
46
|
+
|
|
47
|
+
// 绘制截图
|
|
48
|
+
if (painter) painter.drawImage(img, 0, 0, width, height);
|
|
49
|
+
|
|
50
|
+
resolve(canvas.toDataURL());
|
|
51
|
+
}, 100);
|
|
52
|
+
})
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
56
|
export default SVG
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
const 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
|
-
} : void 0)
|
|
1
|
+
const 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
|
+
} : void 0)
|
|
32
32
|
}
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import type { arcCapType, textAlignType, textBaselineType, lineCapType, lineJoinType } from "../../../types/painterConfig"
|
|
2
|
-
|
|
3
|
-
export default function () {
|
|
4
|
-
return {
|
|
5
|
-
// 颜色
|
|
6
|
-
fillStyle: "rgb(0,0,0)",
|
|
7
|
-
strokeStyle: "rgb(0,0,0)",
|
|
8
|
-
|
|
9
|
-
// 文字对齐方式
|
|
10
|
-
textAlign: <textAlignType>"left",
|
|
11
|
-
textBaseline: <textBaselineType>"middle",
|
|
12
|
-
|
|
13
|
-
// 文字
|
|
14
|
-
"fontSize": 16,
|
|
15
|
-
"fontFamily": "sans-serif",
|
|
16
|
-
|
|
17
|
-
// arc二端闭合方式['butt':直线闭合,'round':圆帽闭合]
|
|
18
|
-
"arcStartCap": <arcCapType>"butt",
|
|
19
|
-
"arcEndCap": <arcCapType>"butt",
|
|
20
|
-
|
|
21
|
-
// 线条
|
|
22
|
-
lineDash: [],
|
|
23
|
-
lineWidth: 1,
|
|
24
|
-
lineCap: <lineCapType>"butt",
|
|
25
|
-
lineJoin: <lineJoinType>"miter",
|
|
26
|
-
|
|
27
|
-
// 矩形圆角半径
|
|
28
|
-
"rectRadius": []
|
|
29
|
-
}
|
|
1
|
+
import type { arcCapType, textAlignType, textBaselineType, lineCapType, lineJoinType } from "../../../types/painterConfig"
|
|
2
|
+
|
|
3
|
+
export default function () {
|
|
4
|
+
return {
|
|
5
|
+
// 颜色
|
|
6
|
+
fillStyle: "rgb(0,0,0)",
|
|
7
|
+
strokeStyle: "rgb(0,0,0)",
|
|
8
|
+
|
|
9
|
+
// 文字对齐方式
|
|
10
|
+
textAlign: <textAlignType>"left",
|
|
11
|
+
textBaseline: <textBaselineType>"middle",
|
|
12
|
+
|
|
13
|
+
// 文字
|
|
14
|
+
"fontSize": 16,
|
|
15
|
+
"fontFamily": "sans-serif",
|
|
16
|
+
|
|
17
|
+
// arc二端闭合方式['butt':直线闭合,'round':圆帽闭合]
|
|
18
|
+
"arcStartCap": <arcCapType>"butt",
|
|
19
|
+
"arcEndCap": <arcCapType>"butt",
|
|
20
|
+
|
|
21
|
+
// 线条
|
|
22
|
+
lineDash: [],
|
|
23
|
+
lineWidth: 1,
|
|
24
|
+
lineCap: <lineCapType>"butt",
|
|
25
|
+
lineJoin: <lineJoinType>"miter",
|
|
26
|
+
|
|
27
|
+
// 矩形圆角半径
|
|
28
|
+
"rectRadius": []
|
|
29
|
+
}
|
|
30
30
|
}
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
import { initDefs } from './config'
|
|
2
|
-
import { toNode, setAttribute } from "./tool"
|
|
3
|
-
|
|
4
|
-
const enhanceGradient = function (gradient: SVGElement, gradientId: string) {
|
|
5
|
-
const enhanceGradient = {
|
|
6
|
-
"value": function () {
|
|
7
|
-
return "url(#" + gradientId + ")"
|
|
8
|
-
},
|
|
9
|
-
"setColor": function (stop: number, color: string) {
|
|
10
|
-
|
|
11
|
-
const stopEl = toNode("stop")
|
|
12
|
-
gradient.appendChild(stopEl)
|
|
13
|
-
setAttribute(stopEl, "offset", (stop * 100) + "%")
|
|
14
|
-
setAttribute(stopEl, "style", "stop-color:" + color + ";")
|
|
15
|
-
|
|
16
|
-
return enhanceGradient
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
return enhanceGradient
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
// 线性渐变
|
|
23
|
-
export const linearGradient = function (el: SVGElement, x0: number, y0: number, x1: number, y1: number) {
|
|
24
|
-
|
|
25
|
-
const defs = initDefs(el)
|
|
26
|
-
const gradientId = "visliteLg" + new Date().valueOf() + "" + (Math.random() * 1000000).toFixed(0)
|
|
27
|
-
|
|
28
|
-
const linearGradient = toNode("linearGradient")
|
|
29
|
-
defs.appendChild(linearGradient)
|
|
30
|
-
setAttribute(linearGradient, "id", gradientId)
|
|
31
|
-
setAttribute(linearGradient, "x1", x0 + "%")
|
|
32
|
-
setAttribute(linearGradient, "y1", y0 + "%")
|
|
33
|
-
setAttribute(linearGradient, "x2", x1 + "%")
|
|
34
|
-
setAttribute(linearGradient, "y2", y1 + "%")
|
|
35
|
-
|
|
36
|
-
return enhanceGradient(linearGradient, gradientId)
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// 环形渐变
|
|
40
|
-
export const radialGradient = function (el: SVGElement, cx: number, cy: number, r: number) {
|
|
41
|
-
|
|
42
|
-
const defs = initDefs(el)
|
|
43
|
-
const gradientId = "visliteRg" + new Date().valueOf() + "" + (Math.random() * 1000000).toFixed(0)
|
|
44
|
-
|
|
45
|
-
const radialGradient = toNode("radialGradient")
|
|
46
|
-
defs.appendChild(radialGradient)
|
|
47
|
-
setAttribute(radialGradient, "id", gradientId)
|
|
48
|
-
setAttribute(radialGradient, "cx", cx + "%")
|
|
49
|
-
setAttribute(radialGradient, "cy", cy + "%")
|
|
50
|
-
setAttribute(radialGradient, "r", r + "%")
|
|
51
|
-
|
|
52
|
-
return enhanceGradient(radialGradient, gradientId)
|
|
53
|
-
}
|
|
1
|
+
import { initDefs } from './config'
|
|
2
|
+
import { toNode, setAttribute } from "./tool"
|
|
3
|
+
|
|
4
|
+
const enhanceGradient = function (gradient: SVGElement, gradientId: string) {
|
|
5
|
+
const enhanceGradient = {
|
|
6
|
+
"value": function () {
|
|
7
|
+
return "url(#" + gradientId + ")"
|
|
8
|
+
},
|
|
9
|
+
"setColor": function (stop: number, color: string) {
|
|
10
|
+
|
|
11
|
+
const stopEl = toNode("stop")
|
|
12
|
+
gradient.appendChild(stopEl)
|
|
13
|
+
setAttribute(stopEl, "offset", (stop * 100) + "%")
|
|
14
|
+
setAttribute(stopEl, "style", "stop-color:" + color + ";")
|
|
15
|
+
|
|
16
|
+
return enhanceGradient
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return enhanceGradient
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// 线性渐变
|
|
23
|
+
export const linearGradient = function (el: SVGElement, x0: number, y0: number, x1: number, y1: number) {
|
|
24
|
+
|
|
25
|
+
const defs = initDefs(el)
|
|
26
|
+
const gradientId = "visliteLg" + new Date().valueOf() + "" + (Math.random() * 1000000).toFixed(0)
|
|
27
|
+
|
|
28
|
+
const linearGradient = toNode("linearGradient")
|
|
29
|
+
defs.appendChild(linearGradient)
|
|
30
|
+
setAttribute(linearGradient, "id", gradientId)
|
|
31
|
+
setAttribute(linearGradient, "x1", x0 + "%")
|
|
32
|
+
setAttribute(linearGradient, "y1", y0 + "%")
|
|
33
|
+
setAttribute(linearGradient, "x2", x1 + "%")
|
|
34
|
+
setAttribute(linearGradient, "y2", y1 + "%")
|
|
35
|
+
|
|
36
|
+
return enhanceGradient(linearGradient, gradientId)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// 环形渐变
|
|
40
|
+
export const radialGradient = function (el: SVGElement, cx: number, cy: number, r: number) {
|
|
41
|
+
|
|
42
|
+
const defs = initDefs(el)
|
|
43
|
+
const gradientId = "visliteRg" + new Date().valueOf() + "" + (Math.random() * 1000000).toFixed(0)
|
|
44
|
+
|
|
45
|
+
const radialGradient = toNode("radialGradient")
|
|
46
|
+
defs.appendChild(radialGradient)
|
|
47
|
+
setAttribute(radialGradient, "id", gradientId)
|
|
48
|
+
setAttribute(radialGradient, "cx", cx + "%")
|
|
49
|
+
setAttribute(radialGradient, "cy", cy + "%")
|
|
50
|
+
setAttribute(radialGradient, "r", r + "%")
|
|
51
|
+
|
|
52
|
+
return enhanceGradient(radialGradient, gradientId)
|
|
53
|
+
}
|