vislite 0.1.0 → 0.2.0-alpha.7

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 (112) hide show
  1. package/AUTHORS.txt +6 -6
  2. package/CHANGELOG +24 -1
  3. package/LICENSE +20 -20
  4. package/README.md +53 -38
  5. package/lib/Canvas/index.umd.js +135 -46
  6. package/lib/Canvas/index.umd.min.js +7 -3
  7. package/lib/Cardinal/index.umd.js +6 -2
  8. package/lib/Cardinal/index.umd.min.js +6 -2
  9. package/lib/Eoap/index.umd.js +9 -5
  10. package/lib/Eoap/index.umd.min.js +6 -2
  11. package/lib/Hermite/index.umd.js +6 -2
  12. package/lib/Hermite/index.umd.min.js +6 -2
  13. package/lib/Matrix4/index.umd.js +6 -2
  14. package/lib/Matrix4/index.umd.min.js +6 -2
  15. package/lib/Mercator/index.umd.js +42 -0
  16. package/lib/Mercator/index.umd.min.js +15 -0
  17. package/lib/OralCanvas/index.es.js +124 -44
  18. package/lib/OralCanvas/index.es.min.js +7 -3
  19. package/lib/OralWebGL/index.es.js +567 -0
  20. package/lib/OralWebGL/index.es.min.js +15 -0
  21. package/lib/SVG/index.umd.js +16 -5
  22. package/lib/SVG/index.umd.min.js +7 -3
  23. package/lib/WebGL/index.umd.js +626 -0
  24. package/lib/WebGL/index.umd.min.js +15 -0
  25. package/lib/animation/index.umd.js +6 -2
  26. package/lib/animation/index.umd.min.js +6 -2
  27. package/lib/getLoopColors/index.umd.js +6 -2
  28. package/lib/getLoopColors/index.umd.min.js +6 -2
  29. package/lib/index.umd.js +1514 -863
  30. package/lib/index.umd.min.js +7 -3
  31. package/lib/rotate/index.umd.js +6 -2
  32. package/lib/rotate/index.umd.min.js +6 -2
  33. package/lib/ruler/index.umd.js +6 -2
  34. package/lib/ruler/index.umd.min.js +6 -2
  35. package/lib/viewHandler/index.umd.js +129 -0
  36. package/lib/viewHandler/index.umd.min.js +15 -0
  37. package/miniprogram/ui-canvas/index.js +18 -3
  38. package/miniprogram/ui-canvas/index.json +4 -4
  39. package/miniprogram/ui-canvas/index.wxml +4 -4
  40. package/miniprogram/ui-canvas/index.wxss +5 -5
  41. package/package/Canvas/index.ts +1 -1
  42. package/package/Cardinal/index.ts +2 -2
  43. package/package/Eoap/index.ts +2 -2
  44. package/package/Hermite/index.ts +2 -2
  45. package/package/Matrix4/index.ts +2 -2
  46. package/package/Mercator/index.ts +3 -0
  47. package/package/OralCanvas/index.ts +1 -1
  48. package/package/OralWebGL/index.ts +2 -0
  49. package/package/SVG/index.ts +2 -2
  50. package/package/WebGL/index.ts +2 -0
  51. package/package/animation/index.ts +2 -2
  52. package/package/getLoopColors/index.ts +2 -2
  53. package/package/index.ts +32 -9
  54. package/package/rotate/index.ts +2 -2
  55. package/package/ruler/index.ts +2 -2
  56. package/package/viewHandler/index.ts +3 -0
  57. package/package.json +11 -2
  58. package/src/Canvas.ts +10 -1
  59. package/src/Eoap.ts +5 -5
  60. package/src/Matrix4/index.ts +76 -76
  61. package/src/Matrix4/move.ts +12 -12
  62. package/src/Matrix4/rotate.ts +15 -15
  63. package/src/Matrix4/scale.ts +11 -11
  64. package/src/Matrix4/transform.ts +64 -64
  65. package/src/Mercator.ts +27 -0
  66. package/src/SVG.ts +1 -1
  67. package/src/WebGL.ts +53 -0
  68. package/src/animation.ts +99 -99
  69. package/src/common/assemble.ts +23 -0
  70. package/src/common/canvas/arc.ts +50 -50
  71. package/src/common/canvas/config.ts +7 -6
  72. package/src/common/canvas/index.ts +29 -28
  73. package/src/common/canvas/painter.ts +51 -8
  74. package/src/common/canvas/texts.ts +19 -0
  75. package/src/common/setStyle.ts +5 -5
  76. package/src/common/svg/config.ts +127 -126
  77. package/src/common/svg/index.ts +13 -3
  78. package/src/common/svg/tool.ts +43 -42
  79. package/src/common/webgl/buffer.ts +80 -0
  80. package/src/common/webgl/doDraw.ts +97 -0
  81. package/src/common/webgl/getColorFactory.ts +27 -0
  82. package/src/common/webgl/getShader.ts +62 -0
  83. package/src/common/webgl/getTexture.ts +12 -0
  84. package/src/common/webgl/getWebGLContext.ts +28 -0
  85. package/src/common/webgl/index.ts +212 -0
  86. package/src/common/webgl/shader.ts +76 -0
  87. package/src/common/webgl/texture.ts +99 -0
  88. package/src/getLoopColors.ts +42 -42
  89. package/src/interpolation/Cardinal.ts +91 -91
  90. package/src/interpolation/Hermite.ts +65 -65
  91. package/src/rotate.ts +7 -7
  92. package/src/ruler.ts +99 -99
  93. package/src/viewHandler.ts +140 -0
  94. package/types/Canvas.d.ts +220 -283
  95. package/types/CanvasConfig.d.ts +81 -0
  96. package/types/Cardinal.d.ts +13 -13
  97. package/types/Hermite.d.ts +18 -18
  98. package/types/Map.d.ts +10 -0
  99. package/types/Matrix4.d.ts +42 -42
  100. package/types/Object3D.d.ts +106 -0
  101. package/types/SVG.d.ts +210 -264
  102. package/types/SVGConfig.d.ts +59 -0
  103. package/types/Scene3D.d.ts +7 -0
  104. package/types/WebGL.d.ts +29 -0
  105. package/types/animation.d.ts +6 -6
  106. package/types/getLoopColors.d.ts +2 -2
  107. package/types/index.d.ts +70 -26
  108. package/types/rotate.d.ts +2 -2
  109. package/types/ruler.d.ts +2 -2
  110. package/types/viewHandler.d.ts +13 -0
  111. package/uni-app/ui-canvas.vue +94 -20
  112. package/types/Eoap.d.ts +0 -10
package/AUTHORS.txt CHANGED
@@ -1,6 +1,6 @@
1
- Authors ordered by first contribution.
2
-
3
- zxl20070701 <1904314465@qq.com> <https://github.com/zxl20070701>
4
-
5
- -----------------------------------------------------
6
- We thank all of them for their contributions!
1
+ Authors ordered by first contribution.
2
+
3
+ zxl20070701 <1904314465@qq.com> <https://github.com/zxl20070701>
4
+
5
+ -----------------------------------------------------
6
+ We thank all of them for their contributions!
package/CHANGELOG CHANGED
@@ -13,4 +13,27 @@ v0.1.0:
13
13
  (包括:Hermite、Cardinal)
14
14
  7、getLoopColors 循环色彩
15
15
  8、animation 动画
16
- 9、ruler 刻度尺
16
+ 9、ruler 刻度尺
17
+ v0.1.1:
18
+ date:2023-05-07
19
+ changes:
20
+ - 修复bug
21
+ 1、解决uni-app和微信小程序组件ui-canvas未绑定事件点击报错问题
22
+ v0.2.0:
23
+ date:
24
+ changes:
25
+ - 修复bug
26
+ 1、为解决this问题,同时优化参数内容,修改了uni-app和微信小程序组件ui-canvas事件语法
27
+ (对旧语法进行了向下兼容)
28
+ 2、校对types中定义的类型信息
29
+ - 优化改造
30
+ 1、针对Canvas和SVG的画笔配置config的属性名,统一使用小驼峰
31
+ (对旧语法进行了向下兼容)
32
+ - 新增功能
33
+ 1、WebGL
34
+ (支持平台:H5)
35
+ 2、Mercator 墨卡托投影
36
+ 3、Canvas新增功能
37
+ * 多行文字:fillTexts、strokeTexts、fullTexts
38
+ * 获取原始画笔:getContext
39
+ 4、uni-app平台的ui-canvas新增cover属性配置,支持非原生渲染模式
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) zxl20070701 走一步,再走一步
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1
+ MIT License
2
+
3
+ Copyright (c) zxl20070701 走一步,再走一步
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  SOFTWARE.
package/README.md CHANGED
@@ -1,39 +1,54 @@
1
- <div style="background-image:url('./docs/images/logo.png');width:512px;height:200px;background-position:center"></div>
2
-
3
- # VISLite
4
-
5
- ```VISLite```是一个使用```TypeScript```开发的可视化库。官网地址:[https://oi-contrib.github.io/VISLite](https://oi-contrib.github.io/VISLite)
6
-
7
- 主要提供了跨端的画布和计算,开发人员只需要按照文档的描述就可以非常简单的完成包括Web、uni-app、微信小程序等平台的可视化开发,除了必要的初始化差异,主要的业务代码部分不同端完全一致。
8
-
9
- ## VISLite的特点
10
-
11
- - 灵活的引入方式:包括npm安装后按照```ES Module```或```CommonJS```规范引入或直接使用script标签的```CDN```方式。
12
- - 按需引入或全局引入:支持源码TS引入、按需JS引入或者全量引入等多种方式。
13
- - 简单与复杂共存:一方面我们提供了可视化需要的基础功能,你可以按照自己的需要组合使用;另一方面,为了加速开发,我们针对常见的可视化业务场景进行了封装,可以帮助你快速完成,你可以根据实际情况进行选择。
14
- - 向下兼容:我们向你保证,始终向下兼容```(alpha和beta版本为测试版本,不包括)```,因此,无论何时,最新版本总是最好的选择。
15
-
16
- ## 需求墙
17
-
18
- 我们的目标是不断完善丰富可视化功能,非常希望获得你宝贵的建议和批评,无论任何想法,都可以给我们[留言](https://github.com/oi-contrib/VISLite/issues)告诉我们。
19
-
20
- 你所提的任何建议我们都会在最长一周内进行反馈说明。
21
-
22
- ## 更新日志
23
-
24
- 详见[正式版更新日志](./CHANGELOG),我们会在每次发布完正式版本后更新其内容。
25
-
26
- ## 下一版本
27
-
28
- 我们会在这里列出下一个版本可能会提供的功能:
29
-
30
- - 添加对WebGL 3D的支持
31
- - 为加速开发,提供常用坐标系和布局
32
-
33
- 给我们[留言](https://github.com/oi-contrib/VISLite/issues)告诉我们你希望快速扩展的功能,我们会优先你的建议考虑哦~
34
-
35
- ## 版权
36
-
37
- MIT License
38
-
1
+ - 开源不易,去 <i>[Github给个Star](https://github.com/oi-contrib/VISLite) </i>吧!
2
+
3
+ <img src='https://oi-contrib.github.io/VISLite/images/logo.png' height='300px'/>
4
+
5
+ <p>
6
+ <a href="https://www.npmjs.com/package/vislite?activeTab=versions">
7
+ <img src="https://img.shields.io/npm/dm/vislite.svg" alt="downloads">
8
+ </a>
9
+ <a href="https://www.npmjs.com/package/vislite">
10
+ <img src="https://img.shields.io/npm/v/vislite.svg" alt="Version">
11
+ </a>
12
+ <a href="https://github.com/oi-contrib/VISLite" target='_blank'>
13
+ <img alt="GitHub repo stars" src="https://img.shields.io/github/stars/oi-contrib/VISLite?style=social">
14
+ </a>
15
+ </p>
16
+
17
+ # VISLite
18
+
19
+ ```VISLite```是一个使用```TypeScript```开发的可视化库。官网地址:[https://oi-contrib.github.io/VISLite](https://oi-contrib.github.io/VISLite)
20
+
21
+ 主要提供了跨端的画布和计算,开发人员只需要按照文档的描述就可以非常简单的完成包括Web、uni-app、微信小程序等平台的可视化开发,除了必要的初始化差异,主要的业务代码部分不同端完全一致。
22
+
23
+ ## 特点
24
+
25
+ - 灵活的引入方式:包括npm安装后按照```ES Module```或```CommonJS```规范引入或直接使用script标签的```CDN```方式。
26
+ - 按需引入或全局引入:支持源码TS引入、按需JS引入或者全量引入等多种方式。
27
+ - 简单与复杂共存:一方面我们提供了可视化需要的基础功能,你可以按照自己的需要组合使用;另一方面,为了加速开发,我们针对常见的可视化业务场景进行了封装,可以帮助你快速完成,你可以根据实际情况进行选择。
28
+ - 向下兼容:我们向你保证,始终向下兼容```(alpha和beta版本为测试版本,不包括)```,因此,无论何时,最新版本总是最好的选择。
29
+
30
+ ## 需求墙
31
+
32
+ 我们的目标是不断完善丰富可视化功能,非常希望获得你宝贵的建议和批评,无论任何想法,都可以给我们[留言](https://github.com/oi-contrib/VISLite/issues)告诉我们。
33
+
34
+ 你所提的任何建议我们都会在最长一周内进行反馈说明。
35
+
36
+ ## 更新日志
37
+
38
+ 详见[正式版更新日志](./CHANGELOG),我们会在每次发布完正式版本后更新其内容。
39
+
40
+ ## 下一步
41
+
42
+ 我们会在这里列出接下来的工作重心:
43
+
44
+ - Canvas、SVG和WebGL画笔功能丰富
45
+ - 为加速开发,提供常用坐标系和布局
46
+ - 文档优化(提供可读性、丰富用例、补充教程)
47
+
48
+ 给我们[留言](https://github.com/oi-contrib/VISLite/issues)告诉我们你希望快速扩展的功能,我们会优先你的建议考虑哦~
49
+
50
+ ## 版权
51
+
52
+ MIT License
53
+
39
54
  Copyright (c) [zxl20070701](https://zxl20070701.github.io/notebook/home.html) 走一步,再走一步
@@ -1,12 +1,16 @@
1
1
  /*!
2
- * VISLite JavaScript Library v0.1.0
2
+ * VISLite JavaScript Library v0.2.0-alpha.7
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  *
5
5
  * Copyright zxl20070701
6
6
  * Released under the MIT license
7
7
  * https://zxl20070701.github.io/notebook/home.html
8
8
  *
9
- * Publish Date: Sat Apr 29 2023 01:41:52 GMT+0800 (中国标准时间)
9
+ * 本版本系测试版本,请认真阅读下述说明再使用:
10
+ *
11
+ *【测试版本细则】
12
+ * alpha:内测版本,仅供开发人员提供测试环境而发布,后续的修改可能极具破坏性,非有明确了解前请勿直接用于项目中
13
+ * beta:外测版本,正式发布前的确认测试,或者新功能紧急发布,一般可以直接用于实际项目,因为即使后续发现了问题,直接使用正式版即可,不会有破坏性
10
14
  */
11
15
  (function (global, factory) {
12
16
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -77,7 +81,7 @@
77
81
  painter.beginPath();
78
82
  painter.translate(x, y);
79
83
  painter.rotate(deg);
80
- painter.font = config['font-style'] + " " + config["font-weight"] + " " + config['font-size'] + "px " + config['font-family'];
84
+ painter.font = config.fontStyle + " " + config.fontWeight + " " + config.fontSize + "px " + config.fontFamily;
81
85
  return painter;
82
86
  };
83
87
  var initArc = function (painter, config, cx, cy, r1, r2, beginDeg, deg) {
@@ -99,17 +103,17 @@
99
103
  painter.beginPath();
100
104
  painter.moveTo(begInnerX, begInnerY);
101
105
  painter.arc(cx, cy, r1, beginA, endA, false);
102
- if (config["arc-end-cap"] != 'round')
106
+ if (config.arcEndCap != 'round')
103
107
  painter.lineTo(endOuterX, endOuterY);
104
108
  else
105
109
  painter.arc((endInnerX + endOuterX) * 0.5, (endInnerY + endOuterY) * 0.5, r, endA - Math.PI, endA, true);
106
110
  painter.arc(cx, cy, r2, endA, beginA, true);
107
- if (config["arc-start-cap"] != 'round')
111
+ if (config.arcStartCap != 'round')
108
112
  painter.lineTo(begInnerX, begInnerY);
109
113
  else
110
114
  painter.arc((begInnerX + begOuterX) * 0.5, (begInnerY + begOuterY) * 0.5, r, beginA, beginA - Math.PI, true);
111
115
  });
112
- if (config["arc-start-cap"] == 'butt')
116
+ if (config.arcStartCap == 'butt')
113
117
  painter.closePath();
114
118
  return painter;
115
119
  };
@@ -125,17 +129,36 @@
125
129
  return painter;
126
130
  };
127
131
 
132
+ function texts (painter, contents, width, height, doback) {
133
+ var lineNumber = 0, content = "";
134
+ for (var i = 0; i < contents.length; i++) {
135
+ if (painter.measureText(content + contents[i]).width > width) {
136
+ lineNumber += 1;
137
+ doback(content, (lineNumber - 0.5) * height);
138
+ content = contents[i];
139
+ }
140
+ else if (i == contents.length - 1) {
141
+ lineNumber += 1;
142
+ doback(content + contents[i], (lineNumber - 0.5) * height);
143
+ }
144
+ else {
145
+ content += contents[i];
146
+ }
147
+ }
148
+ return lineNumber * height;
149
+ }
150
+
128
151
  var Painter = (function () {
129
152
  function Painter(canvas, opts, region) {
130
153
  if (opts === void 0) { opts = {}; }
131
154
  this.__region = null;
132
155
  this.__specialConfig = {
133
- "font-size": 16,
134
- "font-family": "sans-serif",
135
- "font-weight": 400,
136
- "font-style": "normal",
137
- "arc-start-cap": 'butt',
138
- "arc-end-cap": 'butt'
156
+ "fontSize": 16,
157
+ "fontFamily": "sans-serif",
158
+ "fontWeight": 400,
159
+ "fontStyle": "normal",
160
+ "arcStartCap": 'butt',
161
+ "arcEndCap": 'butt'
139
162
  };
140
163
  this.__initConfig = {
141
164
  "fillStyle": 'black',
@@ -187,7 +210,7 @@
187
210
  if (this.__region)
188
211
  this.__region.strokeText(text, x, y, deg);
189
212
  this.painter.save();
190
- initText(this.painter, this.__specialConfig, x, y, deg || 0).strokeText(text, 0, 0);
213
+ initText(this.painter, this.__specialConfig, x, y, deg).strokeText(text, 0, 0);
191
214
  this.painter.restore();
192
215
  return this;
193
216
  };
@@ -196,12 +219,55 @@
196
219
  if (this.__region)
197
220
  this.__region.fullText(text, x, y, deg);
198
221
  this.painter.save();
199
- initText(this.painter, this.__specialConfig, x, y, deg || 0);
222
+ initText(this.painter, this.__specialConfig, x, y, deg);
200
223
  this.painter.fillText(text, 0, 0);
201
224
  this.painter.strokeText(text, 0, 0);
202
225
  this.painter.restore();
203
226
  return this;
204
227
  };
228
+ Painter.prototype.fillTexts = function (contents, x, y, width, lineHeight, deg) {
229
+ var _this = this;
230
+ if (lineHeight === void 0) { lineHeight = 1.2; }
231
+ if (deg === void 0) { deg = 0; }
232
+ if (this.__region)
233
+ this.__region.fillTexts(contents, x, y, width, lineHeight);
234
+ this.painter.save();
235
+ initText(this.painter, this.__specialConfig, x, y, deg);
236
+ var height = texts(this.painter, contents, width, this.__specialConfig.fontSize * lineHeight, function (content, top) {
237
+ _this.painter.fillText(content, 0, top);
238
+ });
239
+ this.painter.restore();
240
+ return height;
241
+ };
242
+ Painter.prototype.strokeTexts = function (contents, x, y, width, lineHeight, deg) {
243
+ var _this = this;
244
+ if (lineHeight === void 0) { lineHeight = 1.2; }
245
+ if (deg === void 0) { deg = 0; }
246
+ if (this.__region)
247
+ this.__region.fillTexts(contents, x, y, width, lineHeight);
248
+ this.painter.save();
249
+ initText(this.painter, this.__specialConfig, x, y, deg);
250
+ var height = texts(this.painter, contents, width, this.__specialConfig.fontSize * lineHeight, function (content, top) {
251
+ _this.painter.strokeText(content, 0, top);
252
+ });
253
+ this.painter.restore();
254
+ return height;
255
+ };
256
+ Painter.prototype.fullTexts = function (contents, x, y, width, lineHeight, deg) {
257
+ var _this = this;
258
+ if (lineHeight === void 0) { lineHeight = 1.2; }
259
+ if (deg === void 0) { deg = 0; }
260
+ if (this.__region)
261
+ this.__region.fillTexts(contents, x, y, width, lineHeight);
262
+ this.painter.save();
263
+ initText(this.painter, this.__specialConfig, x, y, deg);
264
+ var height = texts(this.painter, contents, width, this.__specialConfig.fontSize * lineHeight, function (content, top) {
265
+ _this.painter.fillText(content, 0, top);
266
+ _this.painter.strokeText(content, 0, top);
267
+ });
268
+ this.painter.restore();
269
+ return height;
270
+ };
205
271
  Painter.prototype.beginPath = function () {
206
272
  if (this.__region)
207
273
  this.__region.beginPath();
@@ -344,46 +410,56 @@
344
410
  return Painter;
345
411
  }());
346
412
 
413
+ function assemble (begin, end, step, count) {
414
+ var val = [];
415
+ for (var index = 0; index < count; index++)
416
+ val[index] = begin;
417
+ return function () {
418
+ for (var i = 0; i < count; i++) {
419
+ if (val[i] < end) {
420
+ val[i] = +(val[i] + step).toFixed(7);
421
+ break;
422
+ }
423
+ else if (i < count - 1) {
424
+ val[i] = begin;
425
+ }
426
+ }
427
+ return val;
428
+ };
429
+ }
430
+
431
+ var oldAttrName = {
432
+ "font-size": "fontSize",
433
+ "font-family": "fontFamily",
434
+ "font-weight": "fontWeight",
435
+ "font-style": "fontStyle",
436
+ "arc-start-cap": "arcStartCap",
437
+ "arc-end-cap": "arcEndCap"
438
+ };
347
439
  var Canvas$1 = (function (_super) {
348
440
  __extends(Canvas, _super);
349
441
  function Canvas(ViewCanvas, RegionCanvas) {
350
- var _this_1 = _super.call(this, ViewCanvas, {}, new Painter(RegionCanvas, {
442
+ var _this = _super.call(this, ViewCanvas, {}, new Painter(RegionCanvas, {
351
443
  willReadFrequently: true
352
444
  })) || this;
353
- _this_1.name = "Canvas";
354
- _this_1.__regionList = {};
355
- _this_1.__rgb = [0, 0, 0];
356
- _this_1.__p = 'r';
357
- _this_1.setRegion("");
358
- return _this_1;
445
+ _this.name = "Canvas";
446
+ _this.__regionList = {};
447
+ _this.__regionAssemble = assemble(0, 255, 1, 3);
448
+ _this.setRegion("");
449
+ return _this;
359
450
  }
360
451
  Canvas.prototype.config = function (configs) {
361
452
  for (var key in configs) {
362
- this.useConfig(key, configs[key]);
453
+ var _key = oldAttrName[key] || key;
454
+ this.useConfig(_key, configs[key]);
363
455
  }
364
456
  return this;
365
457
  };
366
458
  Canvas.prototype.setRegion = function (regionName) {
367
- var _this = this;
368
459
  if (regionName) {
369
460
  if (this.__regionList[regionName] == undefined) {
370
- this.__regionList[regionName] = {
371
- 'r': function () {
372
- _this.__rgb[0] += 1;
373
- _this.__p = 'g';
374
- return 'rgb(' + _this.__rgb[0] + ',' + _this.__rgb[1] + ',' + _this.__rgb[2] + ')';
375
- },
376
- 'g': function () {
377
- _this.__rgb[1] += 1;
378
- _this.__p = 'b';
379
- return 'rgb(' + _this.__rgb[0] + ',' + _this.__rgb[1] + ',' + _this.__rgb[2] + ')';
380
- },
381
- 'b': function () {
382
- _this.__rgb[2] += 1;
383
- _this.__p = 'r';
384
- return 'rgb(' + _this.__rgb[0] + ',' + _this.__rgb[1] + ',' + _this.__rgb[2] + ')';
385
- }
386
- }[this.__p]();
461
+ var tempColor = this.__regionAssemble();
462
+ this.__regionList[regionName] = "rgb(" + tempColor[0] + "," + tempColor[1] + "," + tempColor[2] + ")";
387
463
  }
388
464
  this.__region.useConfig("fillStyle", this.__regionList[regionName]) &&
389
465
  this.__region.useConfig("strokeStyle", this.__regionList[regionName]);
@@ -395,13 +471,13 @@
395
471
  return this;
396
472
  };
397
473
  Canvas.prototype.getRegion = function (x, y) {
398
- var _this_1 = this;
474
+ var _this = this;
399
475
  return new Promise(function (resolve, reject) {
400
- var imgData = _this_1.__region.painter.getImageData(x - 0.5, y - 0.5, 1, 1);
476
+ var imgData = _this.__region.painter.getImageData(x - 0.5, y - 0.5, 1, 1);
401
477
  var currentRGBA = imgData.data;
402
478
  var doit = function () {
403
- for (var key in _this_1.__regionList) {
404
- if ("rgb(" + currentRGBA[0] + "," + currentRGBA[1] + "," + currentRGBA[2] + ")" == _this_1.__regionList[key]) {
479
+ for (var key in _this.__regionList) {
480
+ if ("rgb(" + currentRGBA[0] + "," + currentRGBA[1] + "," + currentRGBA[2] + ")" == _this.__regionList[key]) {
405
481
  resolve(key);
406
482
  break;
407
483
  }
@@ -419,12 +495,17 @@
419
495
  }
420
496
  });
421
497
  };
498
+ Canvas.prototype.getContext = function (isRegion) {
499
+ if (isRegion === void 0) { isRegion = false; }
500
+ return isRegion ? this.__region.painter : this.painter;
501
+ };
422
502
  return Canvas;
423
503
  }(Painter));
424
504
 
425
505
  var Canvas = (function (_super) {
426
506
  __extends(Canvas, _super);
427
507
  function Canvas(el) {
508
+ var _this = this;
428
509
  if (!el) {
429
510
  throw new Error("VISLite Canvas:The mount point requires an HTMLElement type but encountered null.");
430
511
  }
@@ -440,7 +521,7 @@
440
521
  el.appendChild(ViewCanvas);
441
522
  RegionCanvas = document.createElement('canvas');
442
523
  _el._vislite_canvas_ = [ViewCanvas, RegionCanvas];
443
- el.setAttribute('vislite', 'inited');
524
+ el.setAttribute('vislite', 'Canvas');
444
525
  }
445
526
  for (var _i = 0, _a = [ViewCanvas, RegionCanvas]; _i < _a.length; _i++) {
446
527
  var canvas = _a[_i];
@@ -449,8 +530,16 @@
449
530
  canvas.style.height = height + "px";
450
531
  canvas.setAttribute('height', height + "");
451
532
  }
452
- return _super.call(this, ViewCanvas, RegionCanvas) || this;
533
+ _this = _super.call(this, ViewCanvas, RegionCanvas) || this;
534
+ _this.__canvas = ViewCanvas;
535
+ return _this;
453
536
  }
537
+ Canvas.prototype.toDataURL = function () {
538
+ var _this = this;
539
+ return new Promise(function (resolve) {
540
+ resolve(_this.__canvas.toDataURL());
541
+ });
542
+ };
454
543
  return Canvas;
455
544
  }(Canvas$1));
456
545
 
@@ -1,11 +1,15 @@
1
1
  /*!
2
- * VISLite JavaScript Library v0.1.0
2
+ * VISLite JavaScript Library v0.2.0-alpha.7
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  *
5
5
  * Copyright zxl20070701
6
6
  * Released under the MIT license
7
7
  * https://zxl20070701.github.io/notebook/home.html
8
8
  *
9
- * Publish Date: Sat Apr 29 2023 01:41:52 GMT+0800 (中国标准时间)
9
+ * 本版本系测试版本,请认真阅读下述说明再使用:
10
+ *
11
+ *【测试版本细则】
12
+ * alpha:内测版本,仅供开发人员提供测试环境而发布,后续的修改可能极具破坏性,非有明确了解前请勿直接用于项目中
13
+ * beta:外测版本,正式发布前的确认测试,或者新功能紧急发布,一般可以直接用于实际项目,因为即使后续发现了问题,直接使用正式版即可,不会有破坏性
10
14
  */
11
- var t,i;t=this,i=function(){"use strict";var t=function(i,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,i){t.__proto__=i}||function(t,i){for(var e in i)Object.prototype.hasOwnProperty.call(i,e)&&(t[e]=i[e])},t(i,e)};function i(i,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=i}t(i,e),i.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}var e=function(t,i,e,r,n){var o=Math.cos(e),s=Math.sin(e);return[+((r-t)*o-(n-i)*s+t).toFixed(7),+((r-t)*s+(n-i)*o+i).toFixed(7)]},r=function(t,i,e,r,n){return t.beginPath(),t.translate(e,r),t.rotate(n),t.font=i["font-style"]+" "+i["font-weight"]+" "+i["font-size"]+"px "+i["font-family"],t},n=function(t,i,r,n,o,s,h,_){if(o>s){var a=o;o=s,s=a}return h%=2*Math.PI,_>=1.999999*Math.PI||_<=1.999999*-Math.PI?_=2*Math.PI:_%=2*Math.PI,function(t,i,r,n,o,s,h){i<0&&(t+=i,i*=-1);var _,a=[];_=e(0,0,t,o,0),a[0]=_[0],a[1]=_[1],_=e(0,0,i,_[0],_[1]),a[2]=_[0],a[3]=_[1],_=e(0,0,t,s,0),a[4]=_[0],a[5]=_[1],_=e(0,0,i,_[0],_[1]),a[6]=_[0],a[7]=_[1],h(t,t+i,a[0]+r,a[1]+n,a[4]+r,a[5]+n,a[2]+r,a[3]+n,a[6]+r,a[7]+n,.5*(s-o))}(h,_,r,n,o,s,(function(e,h,_,a,l,u,p,f,c,g,y){y<0&&(y=-y),t.beginPath(),t.moveTo(_,a),t.arc(r,n,o,e,h,!1),"round"!=i["arc-end-cap"]?t.lineTo(c,g):t.arc(.5*(p+c),.5*(f+g),y,h-Math.PI,h,!0),t.arc(r,n,s,h,e,!0),"round"!=i["arc-start-cap"]?t.lineTo(_,a):t.arc(.5*(_+l),.5*(a+u),y,e,e-Math.PI,!0)})),"butt"==i["arc-start-cap"]&&t.closePath(),t},o=function(t,i,e,r){return t.beginPath(),t.moveTo(i+r,e),t.arc(i,e,r,0,2*Math.PI),t},s=function(t,i,e,r,n){return t.beginPath(),t.rect(i,e,r,n),t},h=function(){function t(t,i,e){void 0===i&&(i={}),this.__region=null,this.__specialConfig={"font-size":16,"font-family":"sans-serif","font-weight":400,"font-style":"normal","arc-start-cap":"butt","arc-end-cap":"butt"},this.__initConfig={fillStyle:"black",strokeStyle:"black",lineWidth:1,textAlign:"left",textBaseline:"middle",lineDash:[],shadowBlur:0,shadowColor:"black"},this.painter=t.getContext("2d",i),this.__region=e,this.painter.textBaseline="middle",this.painter.textAlign="left"}return t.prototype.useConfig=function(t,i){if(this.__region&&["fillStyle","strokeStyle","shadowBlur","shadowColor"].indexOf(t)<0&&this.__region.useConfig(t,i),"lineDash"==t)this.painter.setLineDash&&this.painter.setLineDash(i);else if(t in this.__specialConfig)this.__specialConfig[t]=i;else{if(!(t in this.__initConfig))throw new Error("Illegal configuration item of painter : "+t+" !");this.painter[t]=i}return this},t.prototype.fillText=function(t,i,e,n){return void 0===n&&(n=0),this.__region&&this.__region.fillText(t,i,e,n),this.painter.save(),r(this.painter,this.__specialConfig,i,e,n).fillText(t,0,0),this.painter.restore(),this},t.prototype.strokeText=function(t,i,e,n){return void 0===n&&(n=0),this.__region&&this.__region.strokeText(t,i,e,n),this.painter.save(),r(this.painter,this.__specialConfig,i,e,n||0).strokeText(t,0,0),this.painter.restore(),this},t.prototype.fullText=function(t,i,e,n){return void 0===n&&(n=0),this.__region&&this.__region.fullText(t,i,e,n),this.painter.save(),r(this.painter,this.__specialConfig,i,e,n||0),this.painter.fillText(t,0,0),this.painter.strokeText(t,0,0),this.painter.restore(),this},t.prototype.beginPath=function(){return this.__region&&this.__region.beginPath(),this.painter.beginPath(),this},t.prototype.closePath=function(){return this.__region&&this.__region.closePath(),this.painter.closePath(),this},t.prototype.moveTo=function(t,i){return this.__region&&this.__region.moveTo(t,i),this.painter.moveTo(Math.round(t)+.5,Math.round(i)+.5),this},t.prototype.lineTo=function(t,i){return this.__region&&this.__region.lineTo(t,i),this.painter.lineTo(Math.round(t)+.5,Math.round(i)+.5),this},t.prototype.arc=function(t,i,e,r,n){return this.__region&&this.__region.arc(t,i,e,r,n),this.painter.arc(t,i,e,r,r+n,n<0),this},t.prototype.fill=function(){return this.__region&&this.__region.fill(),this.painter.fill(),this},t.prototype.stroke=function(){return this.__region&&this.__region.stroke(),this.painter.stroke(),this},t.prototype.full=function(){return this.__region&&this.__region.full(),this.painter.fill(),this.painter.stroke(),this},t.prototype.save=function(){return this.__region&&this.__region.save(),this.painter.save(),this},t.prototype.restore=function(){return this.__region&&this.__region.restore(),this.painter.restore(),this},t.prototype.quadraticCurveTo=function(t,i,e,r){return this.__region&&this.__region.quadraticCurveTo(t,i,e,r),this.painter.quadraticCurveTo(t,i,e,r),this},t.prototype.bezierCurveTo=function(t,i,e,r,n,o){return this.__region&&this.__region.bezierCurveTo(t,i,e,r,n,o),this.painter.bezierCurveTo(t,i,e,r,n,o),this},t.prototype.clearRect=function(t,i,e,r){return this.__region&&this.__region.clearRect(t,i,e,r),this.painter.clearRect(t,i,e,r),this},t.prototype.fillArc=function(t,i,e,r,o,s){return this.__region&&this.__region.fillArc(t,i,e,r,o,s),n(this.painter,this.__specialConfig,t,i,e,r,o,s).fill(),this},t.prototype.strokeArc=function(t,i,e,r,o,s){return this.__region&&this.__region.strokeArc(t,i,e,r,o,s),n(this.painter,this.__specialConfig,t,i,e,r,o,s).stroke(),this},t.prototype.fullArc=function(t,i,e,r,o,s){return this.__region&&this.__region.fullArc(t,i,e,r,o,s),n(this.painter,this.__specialConfig,t,i,e,r,o,s),this.painter.fill(),this.painter.stroke(),this},t.prototype.fillCircle=function(t,i,e){return this.__region&&this.__region.fillCircle(t,i,e),o(this.painter,t,i,e).fill(),this},t.prototype.strokeCircle=function(t,i,e){return this.__region&&this.__region.strokeCircle(t,i,e),o(this.painter,t,i,e).stroke(),this},t.prototype.fullCircle=function(t,i,e){return this.__region&&this.__region.fullCircle(t,i,e),o(this.painter,t,i,e),this.painter.fill(),this.painter.stroke(),this},t.prototype.fillRect=function(t,i,e,r){return this.__region&&this.__region.fillRect(t,i,e,r),s(this.painter,t,i,e,r).fill(),this},t.prototype.strokeRect=function(t,i,e,r){return this.__region&&this.__region.strokeRect(t,i,e,r),s(this.painter,t,i,e,r).stroke(),this},t.prototype.fullRect=function(t,i,e,r){return this.__region&&this.__region.fullRect(t,i,e,r),s(this.painter,t,i,e,r),this.painter.fill(),this.painter.stroke(),this},t}(),_=function(t){function e(i,e){var r=t.call(this,i,{},new h(e,{willReadFrequently:!0}))||this;return r.name="Canvas",r.__regionList={},r.__rgb=[0,0,0],r.__p="r",r.setRegion(""),r}return i(e,t),e.prototype.config=function(t){for(var i in t)this.useConfig(i,t[i]);return this},e.prototype.setRegion=function(t){var i=this;return t?(null==this.__regionList[t]&&(this.__regionList[t]={r:function(){return i.__rgb[0]+=1,i.__p="g","rgb("+i.__rgb[0]+","+i.__rgb[1]+","+i.__rgb[2]+")"},g:function(){return i.__rgb[1]+=1,i.__p="b","rgb("+i.__rgb[0]+","+i.__rgb[1]+","+i.__rgb[2]+")"},b:function(){return i.__rgb[2]+=1,i.__p="r","rgb("+i.__rgb[0]+","+i.__rgb[1]+","+i.__rgb[2]+")"}}[this.__p]()),this.__region.useConfig("fillStyle",this.__regionList[t])&&this.__region.useConfig("strokeStyle",this.__regionList[t])):this.__region.useConfig("fillStyle","#000000")&&this.__region.useConfig("strokeStyle","#000000"),this},e.prototype.getRegion=function(t,i){var e=this;return new Promise((function(r,n){var o=e.__region.painter.getImageData(t-.5,i-.5,1,1),s=o.data,h=function(){for(var t in e.__regionList)if("rgb("+s[0]+","+s[1]+","+s[2]+")"==e.__regionList[t]){r(t);break}r("")};s?h():o.then((function(t){s=t,h()}))}))},e}(h);return function(t){function e(i){if(!i)throw new Error("VISLite Canvas:The mount point requires an HTMLElement type but encountered null.");var e,r,n=i.clientWidth,o=i.clientHeight,s=i;s._vislite_canvas_?(e=s._vislite_canvas_[0],r=s._vislite_canvas_[1]):(e=document.createElement("canvas"),i.appendChild(e),r=document.createElement("canvas"),s._vislite_canvas_=[e,r],i.setAttribute("vislite","inited"));for(var h=0,_=[e,r];h<_.length;h++){var a=_[h];a.style.width=n+"px",a.setAttribute("width",n+""),a.style.height=o+"px",a.setAttribute("height",o+"")}return t.call(this,e,r)||this}return i(e,t),e}(_)},"object"==typeof exports&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define(i):(t="undefined"!=typeof globalThis?globalThis:t||self).VISLite_Canvas=i();
15
+ var t,i;t=this,i=function(){"use strict";var t=function(i,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,i){t.__proto__=i}||function(t,i){for(var e in i)Object.prototype.hasOwnProperty.call(i,e)&&(t[e]=i[e])},t(i,e)};function i(i,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=i}t(i,e),i.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var e=function(t,i,e,n,r){var o=Math.cos(e),s=Math.sin(e);return[+((n-t)*o-(r-i)*s+t).toFixed(7),+((n-t)*s+(r-i)*o+i).toFixed(7)]},n=function(t,i,e,n,r){return t.beginPath(),t.translate(e,n),t.rotate(r),t.font=i.fontStyle+" "+i.fontWeight+" "+i.fontSize+"px "+i.fontFamily,t},r=function(t,i,n,r,o,s,a,h){if(o>s){var _=o;o=s,s=_}return a%=2*Math.PI,h>=1.999999*Math.PI||h<=1.999999*-Math.PI?h=2*Math.PI:h%=2*Math.PI,function(t,i,n,r,o,s,a){i<0&&(t+=i,i*=-1);var h,_=[];h=e(0,0,t,o,0),_[0]=h[0],_[1]=h[1],h=e(0,0,i,h[0],h[1]),_[2]=h[0],_[3]=h[1],h=e(0,0,t,s,0),_[4]=h[0],_[5]=h[1],h=e(0,0,i,h[0],h[1]),_[6]=h[0],_[7]=h[1],a(t,t+i,_[0]+n,_[1]+r,_[4]+n,_[5]+r,_[2]+n,_[3]+r,_[6]+n,_[7]+r,.5*(s-o))}(a,h,n,r,o,s,(function(e,a,h,_,l,f,p,u,c,g,v){v<0&&(v=-v),t.beginPath(),t.moveTo(h,_),t.arc(n,r,o,e,a,!1),"round"!=i.arcEndCap?t.lineTo(c,g):t.arc(.5*(p+c),.5*(u+g),v,a-Math.PI,a,!0),t.arc(n,r,s,a,e,!0),"round"!=i.arcStartCap?t.lineTo(h,_):t.arc(.5*(h+l),.5*(_+f),v,e,e-Math.PI,!0)})),"butt"==i.arcStartCap&&t.closePath(),t},o=function(t,i,e,n){return t.beginPath(),t.moveTo(i+n,e),t.arc(i,e,n,0,2*Math.PI),t},s=function(t,i,e,n,r){return t.beginPath(),t.rect(i,e,n,r),t};function a(t,i,e,n,r){for(var o=0,s="",a=0;a<i.length;a++)t.measureText(s+i[a]).width>e?(r(s,((o+=1)-.5)*n),s=i[a]):a==i.length-1?(o+=1,r(s+i[a],(o-.5)*n)):s+=i[a];return o*n}var h=function(){function t(t,i,e){void 0===i&&(i={}),this.__region=null,this.__specialConfig={fontSize:16,fontFamily:"sans-serif",fontWeight:400,fontStyle:"normal",arcStartCap:"butt",arcEndCap:"butt"},this.__initConfig={fillStyle:"black",strokeStyle:"black",lineWidth:1,textAlign:"left",textBaseline:"middle",lineDash:[],shadowBlur:0,shadowColor:"black"},this.painter=t.getContext("2d",i),this.__region=e,this.painter.textBaseline="middle",this.painter.textAlign="left"}return t.prototype.useConfig=function(t,i){if(this.__region&&["fillStyle","strokeStyle","shadowBlur","shadowColor"].indexOf(t)<0&&this.__region.useConfig(t,i),"lineDash"==t)this.painter.setLineDash&&this.painter.setLineDash(i);else if(t in this.__specialConfig)this.__specialConfig[t]=i;else{if(!(t in this.__initConfig))throw new Error("Illegal configuration item of painter : "+t+" !");this.painter[t]=i}return this},t.prototype.fillText=function(t,i,e,r){return void 0===r&&(r=0),this.__region&&this.__region.fillText(t,i,e,r),this.painter.save(),n(this.painter,this.__specialConfig,i,e,r).fillText(t,0,0),this.painter.restore(),this},t.prototype.strokeText=function(t,i,e,r){return void 0===r&&(r=0),this.__region&&this.__region.strokeText(t,i,e,r),this.painter.save(),n(this.painter,this.__specialConfig,i,e,r).strokeText(t,0,0),this.painter.restore(),this},t.prototype.fullText=function(t,i,e,r){return void 0===r&&(r=0),this.__region&&this.__region.fullText(t,i,e,r),this.painter.save(),n(this.painter,this.__specialConfig,i,e,r),this.painter.fillText(t,0,0),this.painter.strokeText(t,0,0),this.painter.restore(),this},t.prototype.fillTexts=function(t,i,e,r,o,s){var h=this;void 0===o&&(o=1.2),void 0===s&&(s=0),this.__region&&this.__region.fillTexts(t,i,e,r,o),this.painter.save(),n(this.painter,this.__specialConfig,i,e,s);var _=a(this.painter,t,r,this.__specialConfig.fontSize*o,(function(t,i){h.painter.fillText(t,0,i)}));return this.painter.restore(),_},t.prototype.strokeTexts=function(t,i,e,r,o,s){var h=this;void 0===o&&(o=1.2),void 0===s&&(s=0),this.__region&&this.__region.fillTexts(t,i,e,r,o),this.painter.save(),n(this.painter,this.__specialConfig,i,e,s);var _=a(this.painter,t,r,this.__specialConfig.fontSize*o,(function(t,i){h.painter.strokeText(t,0,i)}));return this.painter.restore(),_},t.prototype.fullTexts=function(t,i,e,r,o,s){var h=this;void 0===o&&(o=1.2),void 0===s&&(s=0),this.__region&&this.__region.fillTexts(t,i,e,r,o),this.painter.save(),n(this.painter,this.__specialConfig,i,e,s);var _=a(this.painter,t,r,this.__specialConfig.fontSize*o,(function(t,i){h.painter.fillText(t,0,i),h.painter.strokeText(t,0,i)}));return this.painter.restore(),_},t.prototype.beginPath=function(){return this.__region&&this.__region.beginPath(),this.painter.beginPath(),this},t.prototype.closePath=function(){return this.__region&&this.__region.closePath(),this.painter.closePath(),this},t.prototype.moveTo=function(t,i){return this.__region&&this.__region.moveTo(t,i),this.painter.moveTo(Math.round(t)+.5,Math.round(i)+.5),this},t.prototype.lineTo=function(t,i){return this.__region&&this.__region.lineTo(t,i),this.painter.lineTo(Math.round(t)+.5,Math.round(i)+.5),this},t.prototype.arc=function(t,i,e,n,r){return this.__region&&this.__region.arc(t,i,e,n,r),this.painter.arc(t,i,e,n,n+r,r<0),this},t.prototype.fill=function(){return this.__region&&this.__region.fill(),this.painter.fill(),this},t.prototype.stroke=function(){return this.__region&&this.__region.stroke(),this.painter.stroke(),this},t.prototype.full=function(){return this.__region&&this.__region.full(),this.painter.fill(),this.painter.stroke(),this},t.prototype.save=function(){return this.__region&&this.__region.save(),this.painter.save(),this},t.prototype.restore=function(){return this.__region&&this.__region.restore(),this.painter.restore(),this},t.prototype.quadraticCurveTo=function(t,i,e,n){return this.__region&&this.__region.quadraticCurveTo(t,i,e,n),this.painter.quadraticCurveTo(t,i,e,n),this},t.prototype.bezierCurveTo=function(t,i,e,n,r,o){return this.__region&&this.__region.bezierCurveTo(t,i,e,n,r,o),this.painter.bezierCurveTo(t,i,e,n,r,o),this},t.prototype.clearRect=function(t,i,e,n){return this.__region&&this.__region.clearRect(t,i,e,n),this.painter.clearRect(t,i,e,n),this},t.prototype.fillArc=function(t,i,e,n,o,s){return this.__region&&this.__region.fillArc(t,i,e,n,o,s),r(this.painter,this.__specialConfig,t,i,e,n,o,s).fill(),this},t.prototype.strokeArc=function(t,i,e,n,o,s){return this.__region&&this.__region.strokeArc(t,i,e,n,o,s),r(this.painter,this.__specialConfig,t,i,e,n,o,s).stroke(),this},t.prototype.fullArc=function(t,i,e,n,o,s){return this.__region&&this.__region.fullArc(t,i,e,n,o,s),r(this.painter,this.__specialConfig,t,i,e,n,o,s),this.painter.fill(),this.painter.stroke(),this},t.prototype.fillCircle=function(t,i,e){return this.__region&&this.__region.fillCircle(t,i,e),o(this.painter,t,i,e).fill(),this},t.prototype.strokeCircle=function(t,i,e){return this.__region&&this.__region.strokeCircle(t,i,e),o(this.painter,t,i,e).stroke(),this},t.prototype.fullCircle=function(t,i,e){return this.__region&&this.__region.fullCircle(t,i,e),o(this.painter,t,i,e),this.painter.fill(),this.painter.stroke(),this},t.prototype.fillRect=function(t,i,e,n){return this.__region&&this.__region.fillRect(t,i,e,n),s(this.painter,t,i,e,n).fill(),this},t.prototype.strokeRect=function(t,i,e,n){return this.__region&&this.__region.strokeRect(t,i,e,n),s(this.painter,t,i,e,n).stroke(),this},t.prototype.fullRect=function(t,i,e,n){return this.__region&&this.__region.fullRect(t,i,e,n),s(this.painter,t,i,e,n),this.painter.fill(),this.painter.stroke(),this},t}(),_={"font-size":"fontSize","font-family":"fontFamily","font-weight":"fontWeight","font-style":"fontStyle","arc-start-cap":"arcStartCap","arc-end-cap":"arcEndCap"},l=function(t){function e(i,e){var n=t.call(this,i,{},new h(e,{willReadFrequently:!0}))||this;return n.name="Canvas",n.__regionList={},n.__regionAssemble=function(t,i,e,n){for(var r=[],o=0;o<n;o++)r[o]=t;return function(){for(var o=0;o<n;o++){if(r[o]<i){r[o]=+(r[o]+e).toFixed(7);break}o<n-1&&(r[o]=t)}return r}}(0,255,1,3),n.setRegion(""),n}return i(e,t),e.prototype.config=function(t){for(var i in t){var e=_[i]||i;this.useConfig(e,t[i])}return this},e.prototype.setRegion=function(t){if(t){if(null==this.__regionList[t]){var i=this.__regionAssemble();this.__regionList[t]="rgb("+i[0]+","+i[1]+","+i[2]+")"}this.__region.useConfig("fillStyle",this.__regionList[t])&&this.__region.useConfig("strokeStyle",this.__regionList[t])}else this.__region.useConfig("fillStyle","#000000")&&this.__region.useConfig("strokeStyle","#000000");return this},e.prototype.getRegion=function(t,i){var e=this;return new Promise((function(n,r){var o=e.__region.painter.getImageData(t-.5,i-.5,1,1),s=o.data,a=function(){for(var t in e.__regionList)if("rgb("+s[0]+","+s[1]+","+s[2]+")"==e.__regionList[t]){n(t);break}n("")};s?a():o.then((function(t){s=t,a()}))}))},e.prototype.getContext=function(t){return void 0===t&&(t=!1),t?this.__region.painter:this.painter},e}(h);return function(t){function e(i){var e=this;if(!i)throw new Error("VISLite Canvas:The mount point requires an HTMLElement type but encountered null.");var n,r,o=i.clientWidth,s=i.clientHeight,a=i;a._vislite_canvas_?(n=a._vislite_canvas_[0],r=a._vislite_canvas_[1]):(n=document.createElement("canvas"),i.appendChild(n),r=document.createElement("canvas"),a._vislite_canvas_=[n,r],i.setAttribute("vislite","Canvas"));for(var h=0,_=[n,r];h<_.length;h++){var l=_[h];l.style.width=o+"px",l.setAttribute("width",o+""),l.style.height=s+"px",l.setAttribute("height",s+"")}return(e=t.call(this,n,r)||this).__canvas=n,e}return i(e,t),e.prototype.toDataURL=function(){var t=this;return new Promise((function(i){i(t.__canvas.toDataURL())}))},e}(l)},"object"==typeof exports&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define(i):(t="undefined"!=typeof globalThis?globalThis:t||self).VISLite_Canvas=i();
@@ -1,12 +1,16 @@
1
1
  /*!
2
- * VISLite JavaScript Library v0.1.0
2
+ * VISLite JavaScript Library v0.2.0-alpha.7
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  *
5
5
  * Copyright zxl20070701
6
6
  * Released under the MIT license
7
7
  * https://zxl20070701.github.io/notebook/home.html
8
8
  *
9
- * Publish Date: Sat Apr 29 2023 01:41:52 GMT+0800 (中国标准时间)
9
+ * 本版本系测试版本,请认真阅读下述说明再使用:
10
+ *
11
+ *【测试版本细则】
12
+ * alpha:内测版本,仅供开发人员提供测试环境而发布,后续的修改可能极具破坏性,非有明确了解前请勿直接用于项目中
13
+ * beta:外测版本,正式发布前的确认测试,或者新功能紧急发布,一般可以直接用于实际项目,因为即使后续发现了问题,直接使用正式版即可,不会有破坏性
10
14
  */
11
15
  (function (global, factory) {
12
16
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -1,11 +1,15 @@
1
1
  /*!
2
- * VISLite JavaScript Library v0.1.0
2
+ * VISLite JavaScript Library v0.2.0-alpha.7
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  *
5
5
  * Copyright zxl20070701
6
6
  * Released under the MIT license
7
7
  * https://zxl20070701.github.io/notebook/home.html
8
8
  *
9
- * Publish Date: Sat Apr 29 2023 01:41:52 GMT+0800 (中国标准时间)
9
+ * 本版本系测试版本,请认真阅读下述说明再使用:
10
+ *
11
+ *【测试版本细则】
12
+ * alpha:内测版本,仅供开发人员提供测试环境而发布,后续的修改可能极具破坏性,非有明确了解前请勿直接用于项目中
13
+ * beta:外测版本,正式发布前的确认测试,或者新功能紧急发布,一般可以直接用于实际项目,因为即使后续发现了问题,直接使用正式版即可,不会有破坏性
10
14
  */
11
15
  var t,i;t=this,i=function(){"use strict";var t=function(){function t(t){void 0===t&&(t=.5),this.name="Hermite",this.__u=t}return t.prototype.setP=function(t,i,_,h,s,e){if(!(t<_))throw new Error("The point x-position should be increamented!");this.__a=t,this.__b=_;var n=this.__u*s,o=this.__u*e;return i/=_-t,h/=_-t,this.__MR=[2*i-2*h+n+o,3*h-3*i-2*n-o,n,i],this},t.prototype.use=function(t){if(this.__MR){var i=(t-this.__a)/(this.__b-this.__a),_=i*i;return(i*_*this.__MR[0]+_*this.__MR[1]+i*this.__MR[2]+this.__MR[3])*(this.__b-this.__a)}throw new Error("You shoud first set the position!")},t}();return function(){function i(t){void 0===t&&(t=0),this.name="Cardinal",this.__t=t}return i.prototype.setP=function(i){this.__HS={x:[],h:[]};var _,h,s=(i[1][1]-i[0][1])/(i[1][0]-i[0][0]);for(this.__HS.x[0]=i[0][0],_=1;_<i.length;_++){if(i[_][0]<=i[_-1][0])throw new Error("The point position should be increamented!");this.__HS.x[_]=i[_][0],h=_<i.length-1?(i[_+1][1]-i[_-1][1])/(i[_+1][0]-i[_-1][0]):(i[_][1]-i[_-1][1])/(i[_][0]-i[_-1][0]),this.__HS.h[_-1]=new t(.5*(1-this.__t)).setP(i[_-1][0],i[_-1][1],i[_][0],i[_][1],s,h),s=h}return this},i.prototype.use=function(t){if(this.__HS){for(this.__i=-1;this.__i+1<this.__HS.x.length&&(t>this.__HS.x[this.__i+1]||-1==this.__i&&t>=this.__HS.x[this.__i+1]);)this.__i+=1;return this.__i<0?this.__HS.h[0].use(this.__HS.x[0]):this.__i>=this.__HS.h.length?this.__HS.h[this.__HS.h.length-1].use(this.__HS.x[this.__HS.x.length-1]):this.__HS.h[this.__i].use(t)}throw new Error("You shoud first set the position!")},i}()},"object"==typeof exports&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define(i):(t="undefined"!=typeof globalThis?globalThis:t||self).VISLite_Cardinal=i();
@@ -1,12 +1,16 @@
1
1
  /*!
2
- * VISLite JavaScript Library v0.1.0
2
+ * VISLite JavaScript Library v0.2.0-alpha.7
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  *
5
5
  * Copyright zxl20070701
6
6
  * Released under the MIT license
7
7
  * https://zxl20070701.github.io/notebook/home.html
8
8
  *
9
- * Publish Date: Sat Apr 29 2023 01:41:52 GMT+0800 (中国标准时间)
9
+ * 本版本系测试版本,请认真阅读下述说明再使用:
10
+ *
11
+ *【测试版本细则】
12
+ * alpha:内测版本,仅供开发人员提供测试环境而发布,后续的修改可能极具破坏性,非有明确了解前请勿直接用于项目中
13
+ * beta:外测版本,正式发布前的确认测试,或者新功能紧急发布,一般可以直接用于实际项目,因为即使后续发现了问题,直接使用正式版即可,不会有破坏性
10
14
  */
11
15
  (function (global, factory) {
12
16
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -34,9 +38,9 @@
34
38
  this.__scale = scale;
35
39
  this.__center = center;
36
40
  }
37
- Eoap.prototype.use = function (longitude, latitude) {
38
- var p = rotateY((360 - latitude) / 180 * Math.PI, 100 * this.__scale, 0, 0);
39
- p = rotateZ(longitude / 180 * Math.PI, p[0], p[1], p[2]);
41
+ Eoap.prototype.use = function (λ, φ) {
42
+ var p = rotateY((360 - φ) / 180 * Math.PI, 100 * this.__scale, 0, 0);
43
+ p = rotateZ(λ / 180 * Math.PI, p[0], p[1], p[2]);
40
44
  p = rotateZ((90 - this.__center[0]) / 180 * Math.PI, p[0], p[1], p[2]);
41
45
  p = rotateX((90 - this.__center[1]) / 180 * Math.PI, p[0], p[1], p[2]);
42
46
  return [