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.
Files changed (83) hide show
  1. package/CHANGELOG +307 -307
  2. package/lib/BarLayout/index.es.js +437 -437
  3. package/lib/BarLayout/index.es.min.js +2 -2
  4. package/lib/Buffer/index.es.js +35 -35
  5. package/lib/Buffer/index.es.min.js +1 -1
  6. package/lib/Canvas/index.es.js +774 -774
  7. package/lib/Canvas/index.es.min.js +1 -1
  8. package/lib/Cardinal/index.es.js +90 -90
  9. package/lib/Cardinal/index.es.min.js +1 -1
  10. package/lib/Eoap/index.es.js +33 -33
  11. package/lib/Eoap/index.es.min.js +1 -1
  12. package/lib/Hermite/index.es.js +35 -35
  13. package/lib/Hermite/index.es.min.js +1 -1
  14. package/lib/MapCoordinate/index.es.js +199 -199
  15. package/lib/MapCoordinate/index.es.min.js +1 -1
  16. package/lib/Matrix4/index.es.js +124 -124
  17. package/lib/Matrix4/index.es.min.js +1 -1
  18. package/lib/Mercator/index.es.js +19 -19
  19. package/lib/Mercator/index.es.min.js +1 -1
  20. package/lib/PieLayout/index.es.js +213 -213
  21. package/lib/PieLayout/index.es.min.js +2 -2
  22. package/lib/RawCanvas/index.es.js +704 -704
  23. package/lib/RawCanvas/index.es.min.js +1 -1
  24. package/lib/SVG/index.es.js +514 -514
  25. package/lib/SVG/index.es.min.js +1 -1
  26. package/lib/Shader/index.es.js +35 -35
  27. package/lib/Shader/index.es.min.js +1 -1
  28. package/lib/Texture/index.es.js +53 -53
  29. package/lib/Texture/index.es.min.js +1 -1
  30. package/lib/TreeLayout/index.es.js +397 -397
  31. package/lib/TreeLayout/index.es.min.js +2 -2
  32. package/lib/animation/index.es.js +110 -106
  33. package/lib/animation/index.es.min.js +3 -3
  34. package/lib/assemble/index.es.js +17 -17
  35. package/lib/assemble/index.es.min.js +1 -1
  36. package/lib/getLoopColors/index.es.js +35 -35
  37. package/lib/getLoopColors/index.es.min.js +1 -1
  38. package/lib/getWebGLContext/index.es.js +62 -62
  39. package/lib/getWebGLContext/index.es.min.js +1 -1
  40. package/lib/index.umd.js +2795 -2791
  41. package/lib/index.umd.min.js +5 -5
  42. package/lib/initOption/index.es.js +6 -6
  43. package/lib/initOption/index.es.min.js +1 -1
  44. package/lib/mergeOption/index.es.js +34 -34
  45. package/lib/mergeOption/index.es.min.js +1 -1
  46. package/lib/move/index.es.js +7 -7
  47. package/lib/move/index.es.min.js +1 -1
  48. package/lib/rotate/index.es.js +7 -7
  49. package/lib/rotate/index.es.min.js +1 -1
  50. package/lib/ruler/index.es.js +137 -137
  51. package/lib/ruler/index.es.min.js +1 -1
  52. package/lib/scale/index.es.js +6 -6
  53. package/lib/scale/index.es.min.js +1 -1
  54. package/lib/throttle/index.es.js +51 -51
  55. package/lib/throttle/index.es.min.js +2 -2
  56. package/package/BarLayout/index.ts +2 -2
  57. package/package/PieLayout/index.ts +2 -2
  58. package/package/animation/index.ts +6 -3
  59. package/package/index.ts +84 -84
  60. package/package/throttle/index.ts +2 -2
  61. package/package.json +75 -75
  62. package/src/SVG.ts +55 -55
  63. package/src/common/canvas/gradient.ts +31 -31
  64. package/src/common/svg/default.ts +29 -29
  65. package/src/common/svg/gradient.ts +53 -53
  66. package/src/common/svg/index.ts +332 -332
  67. package/src/common/tree/toPlainTree.ts +135 -135
  68. package/src/common/webgl/texture.ts +98 -98
  69. package/src/layout/BarLayout.ts +248 -248
  70. package/src/layout/PieLayout.ts +141 -141
  71. package/src/layout/TreeLayout.ts +197 -197
  72. package/types/Bar.d.ts +91 -91
  73. package/types/BarConfig.d.ts +4 -4
  74. package/types/BarLayout.d.ts +48 -48
  75. package/types/BarOption.d.ts +31 -31
  76. package/types/Pie.d.ts +73 -73
  77. package/types/PieConfig.d.ts +26 -26
  78. package/types/PieLayout.d.ts +40 -40
  79. package/types/PieOption.d.ts +21 -21
  80. package/types/SVG.d.ts +247 -247
  81. package/types/animation.d.ts +11 -5
  82. package/types/index.d.ts +195 -195
  83. package/types/throttle.d.ts +5 -5
package/package.json CHANGED
@@ -1,75 +1,75 @@
1
- {
2
- "name": "vislite",
3
- "version": "1.4.0-alpha.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.1.0"
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
+ }