vislite 1.2.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 (162) hide show
  1. package/AUTHORS.txt +6 -6
  2. package/CHANGELOG +279 -274
  3. package/LICENSE +20 -20
  4. package/README.md +175 -175
  5. package/lib/Buffer/index.es.js +1 -1
  6. package/lib/Buffer/index.es.min.js +1 -1
  7. package/lib/Canvas/index.es.js +1 -1
  8. package/lib/Canvas/index.es.min.js +1 -1
  9. package/lib/Cardinal/index.es.js +1 -1
  10. package/lib/Cardinal/index.es.min.js +1 -1
  11. package/lib/Eoap/index.es.js +1 -1
  12. package/lib/Eoap/index.es.min.js +1 -1
  13. package/lib/Hermite/index.es.js +1 -1
  14. package/lib/Hermite/index.es.min.js +1 -1
  15. package/lib/Matrix4/index.es.js +1 -1
  16. package/lib/Matrix4/index.es.min.js +1 -1
  17. package/lib/Mercator/index.es.js +1 -1
  18. package/lib/Mercator/index.es.min.js +1 -1
  19. package/lib/RawCanvas/index.es.js +1 -1
  20. package/lib/RawCanvas/index.es.min.js +1 -1
  21. package/lib/SVG/index.es.js +1 -1
  22. package/lib/SVG/index.es.min.js +1 -1
  23. package/lib/Shader/index.es.js +1 -1
  24. package/lib/Shader/index.es.min.js +1 -1
  25. package/lib/Texture/index.es.js +1 -1
  26. package/lib/Texture/index.es.min.js +1 -1
  27. package/lib/TreeLayout/index.es.js +1 -1
  28. package/lib/TreeLayout/index.es.min.js +1 -1
  29. package/lib/animation/index.es.js +1 -1
  30. package/lib/animation/index.es.min.js +1 -1
  31. package/lib/assemble/index.es.js +1 -1
  32. package/lib/assemble/index.es.min.js +1 -1
  33. package/lib/getLoopColors/index.es.js +1 -1
  34. package/lib/getLoopColors/index.es.min.js +1 -1
  35. package/lib/getWebGLContext/index.es.js +1 -1
  36. package/lib/getWebGLContext/index.es.min.js +1 -1
  37. package/lib/index.umd.js +1 -1
  38. package/lib/index.umd.min.js +1 -1
  39. package/lib/initOption/index.es.js +1 -1
  40. package/lib/initOption/index.es.min.js +1 -1
  41. package/lib/mergeOption/index.es.js +1 -1
  42. package/lib/mergeOption/index.es.min.js +1 -1
  43. package/lib/move/index.es.js +1 -1
  44. package/lib/move/index.es.min.js +1 -1
  45. package/lib/rotate/index.es.js +1 -1
  46. package/lib/rotate/index.es.min.js +1 -1
  47. package/lib/ruler/index.es.js +1 -1
  48. package/lib/ruler/index.es.min.js +1 -1
  49. package/lib/scale/index.es.js +1 -1
  50. package/lib/scale/index.es.min.js +1 -1
  51. package/lib/throttle/index.es.js +1 -1
  52. package/lib/throttle/index.es.min.js +1 -1
  53. package/minialipay/ui-canvas/drawImage.js +35 -35
  54. package/minialipay/ui-canvas/index.acss +4 -4
  55. package/minialipay/ui-canvas/index.axml +3 -3
  56. package/minialipay/ui-canvas/index.d.ts +1 -1
  57. package/minialipay/ui-canvas/index.js +100 -100
  58. package/minialipay/ui-canvas/index.json +6 -6
  59. package/miniprogram/ui-canvas/drawImage.js +35 -35
  60. package/miniprogram/ui-canvas/index.js +117 -117
  61. package/miniprogram/ui-canvas/index.json +4 -4
  62. package/miniprogram/ui-canvas/index.wxml +4 -4
  63. package/miniprogram/ui-canvas/index.wxss +5 -5
  64. package/package/Buffer/index.ts +2 -2
  65. package/package/Canvas/index.ts +2 -2
  66. package/package/Cardinal/index.ts +2 -2
  67. package/package/Eoap/index.ts +2 -2
  68. package/package/Hermite/index.ts +2 -2
  69. package/package/Matrix4/index.ts +2 -2
  70. package/package/Mercator/index.ts +2 -2
  71. package/package/RawCanvas/index.ts +2 -2
  72. package/package/SVG/index.ts +2 -2
  73. package/package/Shader/index.ts +2 -2
  74. package/package/Texture/index.ts +2 -2
  75. package/package/TreeLayout/index.ts +2 -2
  76. package/package/animation/index.ts +2 -2
  77. package/package/assemble/index.ts +2 -2
  78. package/package/getLoopColors/index.ts +2 -2
  79. package/package/getWebGLContext/index.ts +40 -40
  80. package/package/index.ts +75 -75
  81. package/package/initOption/index.ts +2 -2
  82. package/package/mergeOption/index.ts +2 -2
  83. package/package/move/index.ts +2 -2
  84. package/package/rotate/index.ts +2 -2
  85. package/package/ruler/index.ts +2 -2
  86. package/package/scale/index.ts +2 -2
  87. package/package/throttle/index.ts +2 -2
  88. package/package.json +78 -78
  89. package/src/Canvas.ts +84 -84
  90. package/src/Eoap.ts +66 -66
  91. package/src/Matrix4/index.ts +84 -84
  92. package/src/Matrix4/move.ts +12 -12
  93. package/src/Matrix4/rotate.ts +15 -15
  94. package/src/Matrix4/scale.ts +11 -11
  95. package/src/Matrix4/transform.ts +64 -64
  96. package/src/Mercator.ts +27 -27
  97. package/src/SVG.ts +24 -24
  98. package/src/common/assemble.ts +22 -22
  99. package/src/common/canvas/arc.ts +51 -51
  100. package/src/common/canvas/config.ts +158 -158
  101. package/src/common/canvas/default.ts +61 -61
  102. package/src/common/canvas/gradient.ts +31 -31
  103. package/src/common/canvas/index.ts +188 -188
  104. package/src/common/canvas/painter.ts +430 -430
  105. package/src/common/canvas/texts.ts +18 -18
  106. package/src/common/option.ts +29 -29
  107. package/src/common/setStyle.ts +5 -5
  108. package/src/common/svg/config.ts +194 -194
  109. package/src/common/svg/default.ts +26 -26
  110. package/src/common/svg/gradient.ts +53 -53
  111. package/src/common/svg/index.ts +332 -332
  112. package/src/common/svg/tool.ts +42 -42
  113. package/src/common/tree/index.ts +25 -25
  114. package/src/common/tree/toInnerTree.ts +59 -59
  115. package/src/common/tree/toPlainTree.ts +132 -132
  116. package/src/common/type.ts +26 -26
  117. package/src/common/webgl/buffer.ts +79 -79
  118. package/src/common/webgl/getWebGLContext.ts +45 -45
  119. package/src/common/webgl/shader.ts +75 -75
  120. package/src/common/webgl/texture.ts +97 -97
  121. package/src/getLoopColors.ts +42 -42
  122. package/src/interpolation/Cardinal.ts +110 -110
  123. package/src/interpolation/Hermite.ts +65 -65
  124. package/src/layout/TreeLayout.ts +188 -188
  125. package/src/move.ts +7 -7
  126. package/src/rotate.ts +7 -7
  127. package/src/ruler.ts +209 -209
  128. package/src/scale.ts +6 -6
  129. package/types/Buffer.d.ts +23 -23
  130. package/types/Canvas.d.ts +344 -344
  131. package/types/CanvasConfig.d.ts +116 -116
  132. package/types/CanvasOption.d.ts +8 -8
  133. package/types/CanvasOpts.d.ts +9 -9
  134. package/types/Cardinal.d.ts +13 -13
  135. package/types/Gradient.d.ts +14 -14
  136. package/types/Hermite.d.ts +18 -18
  137. package/types/Map.d.ts +9 -9
  138. package/types/Matrix4.d.ts +47 -47
  139. package/types/SVG.d.ts +243 -243
  140. package/types/SVGConfig.d.ts +89 -89
  141. package/types/Shader.d.ts +16 -16
  142. package/types/Texture.d.ts +16 -16
  143. package/types/Tree.d.ts +69 -69
  144. package/types/TreeConfig.d.ts +36 -36
  145. package/types/TreeLayout.d.ts +54 -54
  146. package/types/TreeOption.d.ts +48 -48
  147. package/types/animation.d.ts +5 -5
  148. package/types/assemble.d.ts +5 -5
  149. package/types/getLoopColors.d.ts +5 -5
  150. package/types/getWebGLContext.d.ts +7 -7
  151. package/types/index.d.ts +165 -160
  152. package/types/move.d.ts +5 -5
  153. package/types/option.d.ts +12 -12
  154. package/types/painterConfig.d.ts +4 -4
  155. package/types/rotate.d.ts +5 -5
  156. package/types/ruler.d.ts +10 -10
  157. package/types/scale.d.ts +5 -5
  158. package/types/throttle.d.ts +5 -5
  159. package/types/ui-canvas.d.ts +4 -4
  160. package/types/uni-canvas.d.ts +3 -3
  161. package/uni-app/drawImage.js +19 -19
  162. package/uni-app/ui-canvas.vue +284 -284
@@ -1,3 +1,3 @@
1
- import getLoopColors from "../../src/getLoopColors"
2
-
1
+ import getLoopColors from "../../src/getLoopColors"
2
+
3
3
  export default getLoopColors
@@ -1,41 +1,41 @@
1
- import getWebGLContext from "../../src/common/webgl/getWebGLContext"
2
- import type { WebGLmodeType } from "../../types/getWebGLContext"
3
-
4
- export default (el: HTMLElement | null, scale: number = 1, mode?: WebGLmodeType) => {
5
- if (!el) {
6
- throw new Error("VISLite getWebGLContext:The mount point requires an HTMLElement type but encountered null.")
7
- }
8
-
9
- let width = el.clientWidth, height = el.clientHeight
10
-
11
- let ViewCanvas: HTMLCanvasElement
12
-
13
- let _el = el as any
14
-
15
- // 如果已经初始化过了
16
- if (_el._vislite_canvas_) {
17
- ViewCanvas = _el._vislite_canvas_
18
- }
19
-
20
- // 否则就初始化
21
- else {
22
-
23
- ViewCanvas = document.createElement('canvas')
24
- el.appendChild(ViewCanvas)
25
-
26
- _el._vislite_canvas_ = ViewCanvas
27
-
28
- el.setAttribute('vislite', 'WebGL')
29
-
30
- }
31
-
32
- // 设置画布大小
33
-
34
- ViewCanvas.style.width = width + "px"
35
- ViewCanvas.setAttribute('width', width + "")
36
-
37
- ViewCanvas.style.height = height + "px"
38
- ViewCanvas.setAttribute('height', height + "")
39
-
40
- return getWebGLContext(ViewCanvas, scale, {}, mode)
1
+ import getWebGLContext from "../../src/common/webgl/getWebGLContext"
2
+ import type { WebGLmodeType } from "../../types/getWebGLContext"
3
+
4
+ export default (el: HTMLElement | null, scale: number = 1, mode?: WebGLmodeType) => {
5
+ if (!el) {
6
+ throw new Error("VISLite getWebGLContext:The mount point requires an HTMLElement type but encountered null.")
7
+ }
8
+
9
+ let width = el.clientWidth, height = el.clientHeight
10
+
11
+ let ViewCanvas: HTMLCanvasElement
12
+
13
+ let _el = el as any
14
+
15
+ // 如果已经初始化过了
16
+ if (_el._vislite_canvas_) {
17
+ ViewCanvas = _el._vislite_canvas_
18
+ }
19
+
20
+ // 否则就初始化
21
+ else {
22
+
23
+ ViewCanvas = document.createElement('canvas')
24
+ el.appendChild(ViewCanvas)
25
+
26
+ _el._vislite_canvas_ = ViewCanvas
27
+
28
+ el.setAttribute('vislite', 'WebGL')
29
+
30
+ }
31
+
32
+ // 设置画布大小
33
+
34
+ ViewCanvas.style.width = width + "px"
35
+ ViewCanvas.setAttribute('width', width + "")
36
+
37
+ ViewCanvas.style.height = height + "px"
38
+ ViewCanvas.setAttribute('height', height + "")
39
+
40
+ return getWebGLContext(ViewCanvas, scale, {}, mode)
41
41
  }
package/package/index.ts CHANGED
@@ -1,76 +1,76 @@
1
- import Cardinal from "./Cardinal/index"
2
- import Hermite from "./Hermite/index"
3
-
4
- import Matrix4 from "./Matrix4/index"
5
- import rotate from "./rotate/index"
6
- import move from "./move/index"
7
- import scale from "./scale/index"
8
-
9
- import getLoopColors from "./getLoopColors/index"
10
- import animation from "./animation/index"
11
- import ruler from "./ruler/index"
12
-
13
- import SVG from "./SVG/index"
14
- import Canvas from "./Canvas/index"
15
- import RawCanvas from "../src/common/canvas/index"
16
-
17
- import getWebGLContext from "./getWebGLContext/index"
18
- import Shader from "./Shader/index"
19
- import Texture from "./Texture/index"
20
- import Buffer from "./Buffer/index"
21
-
22
- import Eoap from "./Eoap/index"
23
- import Mercator from "./Mercator/index"
24
-
25
- import throttle from "./throttle/index"
26
-
27
- import TreeLayout from "./TreeLayout/index"
28
-
29
- import initOption from "./initOption/index"
30
- import mergeOption from "./mergeOption/index"
31
-
32
- import assemble from "./assemble/index"
33
-
34
- export default {
35
-
36
- // 插值
37
- Cardinal,
38
- Hermite,
39
-
40
- // 变换
41
- Matrix4,
42
- rotate,
43
- move,
44
- scale,
45
-
46
- // 工具
47
- getLoopColors,
48
- animation,
49
- ruler,
50
-
51
- // 画笔
52
- SVG,
53
- Canvas,
54
- RawCanvas,
55
-
56
- // WebGL
57
- getWebGLContext,
58
- Shader,
59
- Texture,
60
- Buffer,
61
-
62
- // 投影
63
- Eoap,
64
- Mercator,
65
-
66
- // 辅助
67
- throttle,
68
- assemble,
69
-
70
- // 布局
71
- TreeLayout,
72
-
73
- // 配置项
74
- initOption,
75
- mergeOption
1
+ import Cardinal from "./Cardinal/index"
2
+ import Hermite from "./Hermite/index"
3
+
4
+ import Matrix4 from "./Matrix4/index"
5
+ import rotate from "./rotate/index"
6
+ import move from "./move/index"
7
+ import scale from "./scale/index"
8
+
9
+ import getLoopColors from "./getLoopColors/index"
10
+ import animation from "./animation/index"
11
+ import ruler from "./ruler/index"
12
+
13
+ import SVG from "./SVG/index"
14
+ import Canvas from "./Canvas/index"
15
+ import RawCanvas from "../src/common/canvas/index"
16
+
17
+ import getWebGLContext from "./getWebGLContext/index"
18
+ import Shader from "./Shader/index"
19
+ import Texture from "./Texture/index"
20
+ import Buffer from "./Buffer/index"
21
+
22
+ import Eoap from "./Eoap/index"
23
+ import Mercator from "./Mercator/index"
24
+
25
+ import throttle from "./throttle/index"
26
+
27
+ import TreeLayout from "./TreeLayout/index"
28
+
29
+ import initOption from "./initOption/index"
30
+ import mergeOption from "./mergeOption/index"
31
+
32
+ import assemble from "./assemble/index"
33
+
34
+ export default {
35
+
36
+ // 插值
37
+ Cardinal,
38
+ Hermite,
39
+
40
+ // 变换
41
+ Matrix4,
42
+ rotate,
43
+ move,
44
+ scale,
45
+
46
+ // 工具
47
+ getLoopColors,
48
+ animation,
49
+ ruler,
50
+
51
+ // 画笔
52
+ SVG,
53
+ Canvas,
54
+ RawCanvas,
55
+
56
+ // WebGL
57
+ getWebGLContext,
58
+ Shader,
59
+ Texture,
60
+ Buffer,
61
+
62
+ // 投影
63
+ Eoap,
64
+ Mercator,
65
+
66
+ // 辅助
67
+ throttle,
68
+ assemble,
69
+
70
+ // 布局
71
+ TreeLayout,
72
+
73
+ // 配置项
74
+ initOption,
75
+ mergeOption
76
76
  }
@@ -1,3 +1,3 @@
1
- import { initOption } from "../../src/common/option"
2
-
1
+ import { initOption } from "../../src/common/option"
2
+
3
3
  export default initOption
@@ -1,3 +1,3 @@
1
- import { mergeOption } from "../../src/common/option"
2
-
1
+ import { mergeOption } from "../../src/common/option"
2
+
3
3
  export default mergeOption
@@ -1,3 +1,3 @@
1
- import move from "../../src/move"
2
-
1
+ import move from "../../src/move"
2
+
3
3
  export default move
@@ -1,3 +1,3 @@
1
- import rotate from "../../src/rotate"
2
-
1
+ import rotate from "../../src/rotate"
2
+
3
3
  export default rotate
@@ -1,3 +1,3 @@
1
- import ruler from "../../src/ruler"
2
-
1
+ import ruler from "../../src/ruler"
2
+
3
3
  export default ruler
@@ -1,3 +1,3 @@
1
- import scale from "../../src/scale"
2
-
1
+ import scale from "../../src/scale"
2
+
3
3
  export default scale
@@ -1,3 +1,3 @@
1
- import { throttle } from "@oipage/core.js/src/throttle/index"
2
-
1
+ import { throttle } from "@oipage/core.js/src/throttle/index"
2
+
3
3
  export default throttle
package/package.json CHANGED
@@ -1,78 +1,78 @@
1
- {
2
- "name": "vislite",
3
- "version": "1.2.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
- "init": "npm install && devby --copy ./node_modules/pageby/dist/pageby.min.js ./docs/js/min/pageby.min.js",
12
- "dev": "webpack serve --config ./build/webpack.config.js",
13
- "build": "devby --delete ./lib && node ./build/pkg.js",
14
- "test": "karma start ./build/karma.config.js",
15
- "lint": "eslint src/**/*.ts --fix"
16
- },
17
- "miniprogram": ".",
18
- "repository": {
19
- "type": "git",
20
- "url": "git+https://github.com/oi-contrib/VISLite.git"
21
- },
22
- "keywords": [
23
- "svg",
24
- "webgl",
25
- "typescript",
26
- "canvas",
27
- "vue",
28
- "uniapp",
29
- "miniprogram",
30
- "image2d",
31
- "image3d",
32
- "oi-contrib",
33
- "vislite",
34
- "d3",
35
- "zxl20070701",
36
- "three",
37
- "echarts",
38
- "datav",
39
- "webgpu",
40
- "layout",
41
- "algorithm"
42
- ],
43
- "author": {
44
- "name": "zxl20070701",
45
- "url": "https://zxl20070701.github.io/notebook/home.html"
46
- },
47
- "license": "MIT",
48
- "bugs": {
49
- "url": "https://github.com/oi-contrib/VISLite/issues"
50
- },
51
- "homepage": "https://oi-contrib.github.io/VISLite",
52
- "devDependencies": {
53
- "@rollup/plugin-commonjs": "^25.0.7",
54
- "@rollup/plugin-node-resolve": "^15.2.3",
55
- "@rollup/plugin-typescript": "^11.1.0",
56
- "@types/jasmine": "^4.3.1",
57
- "@typescript-eslint/eslint-plugin": "^6.14.0",
58
- "@typescript-eslint/parser": "^6.14.0",
59
- "devby": "^0.4.6",
60
- "eslint": "^8.56.0",
61
- "karma": "^6.3.10",
62
- "karma-chrome-launcher": "^3.1.0",
63
- "karma-jasmine": "^4.0.1",
64
- "karma-webpack": "^5.0.0",
65
- "pageby": "^0.1.0",
66
- "rollup": "^3.20.6",
67
- "terser": "^5.17.1",
68
- "ts-loader": "^9.2.8",
69
- "tslib": "^2.5.0",
70
- "typescript": "^4.6.2",
71
- "webpack": "^5.70.0",
72
- "webpack-cli": "^4.9.2",
73
- "webpack-dev-server": "^4.7.4"
74
- },
75
- "dependencies": {
76
- "@oipage/core.js": "^0.1.0"
77
- }
78
- }
1
+ {
2
+ "name": "vislite",
3
+ "version": "1.2.1-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
+ "init": "npm install && devby --copy ./node_modules/pageby/dist/pageby.min.js ./docs/js/min/pageby.min.js",
12
+ "dev": "webpack serve --config ./build/webpack.config.js",
13
+ "build": "devby --delete ./lib && node ./build/pkg.js",
14
+ "test": "karma start ./build/karma.config.js",
15
+ "lint": "eslint src/**/*.ts --fix"
16
+ },
17
+ "miniprogram": ".",
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://github.com/oi-contrib/VISLite.git"
21
+ },
22
+ "keywords": [
23
+ "svg",
24
+ "webgl",
25
+ "typescript",
26
+ "canvas",
27
+ "vue",
28
+ "uniapp",
29
+ "miniprogram",
30
+ "image2d",
31
+ "image3d",
32
+ "oi-contrib",
33
+ "vislite",
34
+ "d3",
35
+ "zxl20070701",
36
+ "three",
37
+ "echarts",
38
+ "datav",
39
+ "webgpu",
40
+ "layout",
41
+ "algorithm"
42
+ ],
43
+ "author": {
44
+ "name": "zxl20070701",
45
+ "url": "https://zxl20070701.github.io/notebook/home.html"
46
+ },
47
+ "license": "MIT",
48
+ "bugs": {
49
+ "url": "https://github.com/oi-contrib/VISLite/issues"
50
+ },
51
+ "homepage": "https://oi-contrib.github.io/VISLite",
52
+ "devDependencies": {
53
+ "@rollup/plugin-commonjs": "^25.0.7",
54
+ "@rollup/plugin-node-resolve": "^15.2.3",
55
+ "@rollup/plugin-typescript": "^11.1.0",
56
+ "@types/jasmine": "^4.3.1",
57
+ "@typescript-eslint/eslint-plugin": "^6.14.0",
58
+ "@typescript-eslint/parser": "^6.14.0",
59
+ "devby": "^0.4.6",
60
+ "eslint": "^8.56.0",
61
+ "karma": "^6.3.10",
62
+ "karma-chrome-launcher": "^3.1.0",
63
+ "karma-jasmine": "^4.0.1",
64
+ "karma-webpack": "^5.0.0",
65
+ "pageby": "^0.1.0",
66
+ "rollup": "^3.20.6",
67
+ "terser": "^5.17.1",
68
+ "ts-loader": "^9.2.8",
69
+ "tslib": "^2.5.0",
70
+ "typescript": "^4.6.2",
71
+ "webpack": "^5.70.0",
72
+ "webpack-cli": "^4.9.2",
73
+ "webpack-dev-server": "^4.7.4"
74
+ },
75
+ "dependencies": {
76
+ "@oipage/core.js": "^0.1.0"
77
+ }
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