vislite 1.2.1 → 1.3.0-alpha.1
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/AUTHORS.txt +6 -6
- package/CHANGELOG +18 -1
- package/LICENSE +20 -20
- package/README.md +9 -33
- package/lib/Buffer/index.es.js +1 -1
- package/lib/Buffer/index.es.min.js +1 -1
- package/lib/Canvas/index.es.js +36 -7
- package/lib/Canvas/index.es.min.js +2 -2
- package/lib/Cardinal/index.es.js +1 -1
- package/lib/Cardinal/index.es.min.js +1 -1
- package/lib/Eoap/index.es.js +1 -1
- package/lib/Eoap/index.es.min.js +1 -1
- package/lib/Hermite/index.es.js +1 -1
- package/lib/Hermite/index.es.min.js +1 -1
- package/lib/MapCoordinate/index.es.d.ts +3 -0
- package/lib/MapCoordinate/index.es.js +217 -0
- package/lib/MapCoordinate/index.es.min.d.ts +3 -0
- package/lib/MapCoordinate/index.es.min.js +5 -0
- package/lib/Matrix4/index.es.js +1 -1
- package/lib/Matrix4/index.es.min.js +1 -1
- package/lib/Mercator/index.es.js +1 -1
- package/lib/Mercator/index.es.min.js +1 -1
- package/lib/RawCanvas/index.es.js +36 -7
- package/lib/RawCanvas/index.es.min.js +2 -2
- package/lib/SVG/index.es.js +47 -20
- package/lib/SVG/index.es.min.js +2 -2
- package/lib/Shader/index.es.js +1 -1
- package/lib/Shader/index.es.min.js +1 -1
- package/lib/Texture/index.es.js +1 -1
- package/lib/Texture/index.es.min.js +1 -1
- package/lib/TreeLayout/index.es.js +1 -1
- package/lib/TreeLayout/index.es.min.js +1 -1
- package/lib/animation/index.es.js +1 -1
- package/lib/animation/index.es.min.js +1 -1
- package/lib/assemble/index.es.js +1 -1
- package/lib/assemble/index.es.min.js +1 -1
- package/lib/getLoopColors/index.es.js +1 -1
- package/lib/getLoopColors/index.es.min.js +1 -1
- package/lib/getWebGLContext/index.es.js +1 -1
- package/lib/getWebGLContext/index.es.min.js +1 -1
- package/lib/index.umd.js +198 -26
- package/lib/index.umd.min.js +2 -2
- package/lib/initOption/index.es.js +1 -1
- package/lib/initOption/index.es.min.js +1 -1
- package/lib/mergeOption/index.es.js +1 -1
- package/lib/mergeOption/index.es.min.js +1 -1
- package/lib/move/index.es.js +1 -1
- package/lib/move/index.es.min.js +1 -1
- package/lib/rotate/index.es.js +1 -1
- package/lib/rotate/index.es.min.js +1 -1
- package/lib/ruler/index.es.js +1 -1
- package/lib/ruler/index.es.min.js +1 -1
- package/lib/scale/index.es.js +1 -1
- package/lib/scale/index.es.min.js +1 -1
- package/lib/throttle/index.es.js +1 -1
- package/lib/throttle/index.es.min.js +1 -1
- package/minialipay/ui-canvas/drawImage.js +35 -35
- package/minialipay/ui-canvas/index.acss +4 -4
- package/minialipay/ui-canvas/index.axml +3 -3
- package/minialipay/ui-canvas/index.d.ts +1 -1
- package/minialipay/ui-canvas/index.js +100 -100
- package/minialipay/ui-canvas/index.json +6 -6
- package/miniprogram/ui-canvas/drawImage.js +35 -35
- package/miniprogram/ui-canvas/index.js +117 -117
- package/miniprogram/ui-canvas/index.json +4 -4
- package/miniprogram/ui-canvas/index.wxml +4 -4
- package/miniprogram/ui-canvas/index.wxss +5 -5
- package/package/Buffer/index.ts +2 -2
- package/package/Canvas/index.ts +2 -2
- package/package/Cardinal/index.ts +2 -2
- package/package/Eoap/index.ts +2 -2
- package/package/Hermite/index.ts +2 -2
- package/package/MapCoordinate/index.ts +3 -0
- package/package/Matrix4/index.ts +2 -2
- package/package/Mercator/index.ts +2 -2
- package/package/RawCanvas/index.ts +2 -2
- package/package/SVG/index.ts +2 -2
- package/package/Shader/index.ts +2 -2
- package/package/Texture/index.ts +2 -2
- package/package/TreeLayout/index.ts +2 -2
- package/package/animation/index.ts +2 -2
- package/package/assemble/index.ts +2 -2
- package/package/getLoopColors/index.ts +2 -2
- package/package/getWebGLContext/index.ts +40 -40
- package/package/index.ts +80 -75
- package/package/initOption/index.ts +2 -2
- package/package/mergeOption/index.ts +2 -2
- package/package/move/index.ts +2 -2
- package/package/rotate/index.ts +2 -2
- package/package/ruler/index.ts +2 -2
- package/package/scale/index.ts +2 -2
- package/package/throttle/index.ts +2 -2
- package/package.json +75 -77
- package/src/Canvas.ts +84 -84
- package/src/Eoap.ts +66 -66
- package/src/Matrix4/index.ts +84 -84
- package/src/Matrix4/move.ts +12 -12
- package/src/Matrix4/rotate.ts +15 -15
- package/src/Matrix4/scale.ts +11 -11
- package/src/Matrix4/transform.ts +64 -64
- package/src/Mercator.ts +27 -27
- package/src/SVG.ts +24 -24
- package/src/common/assemble.ts +22 -22
- package/src/common/canvas/arc.ts +51 -51
- package/src/common/canvas/config.ts +176 -158
- package/src/common/canvas/default.ts +64 -61
- package/src/common/canvas/gradient.ts +31 -31
- package/src/common/canvas/index.ts +188 -188
- package/src/common/canvas/painter.ts +443 -430
- package/src/common/canvas/texts.ts +18 -18
- package/src/common/map/getBoundary.ts +16 -0
- package/src/common/map/tool.ts +30 -0
- package/src/common/option.ts +29 -29
- package/src/common/setStyle.ts +5 -5
- package/src/common/svg/config.ts +213 -194
- package/src/common/svg/default.ts +29 -26
- package/src/common/svg/gradient.ts +53 -53
- package/src/common/svg/index.ts +332 -332
- package/src/common/svg/tool.ts +51 -42
- package/src/common/tree/index.ts +25 -25
- package/src/common/tree/toPlainTree.ts +132 -132
- package/src/common/type.ts +26 -26
- package/src/common/webgl/buffer.ts +79 -79
- package/src/common/webgl/getWebGLContext.ts +45 -45
- package/src/common/webgl/shader.ts +75 -75
- package/src/common/webgl/texture.ts +97 -97
- package/src/coordinate/MapCoordinate.ts +81 -0
- package/src/getLoopColors.ts +42 -42
- package/src/interpolation/Cardinal.ts +110 -110
- package/src/interpolation/Hermite.ts +65 -65
- package/src/move.ts +7 -7
- package/src/rotate.ts +7 -7
- package/src/ruler.ts +209 -209
- package/src/scale.ts +6 -6
- package/types/Buffer.d.ts +23 -23
- package/types/Canvas.d.ts +352 -344
- package/types/CanvasConfig.d.ts +88 -116
- package/types/CanvasOption.d.ts +8 -8
- package/types/CanvasOpts.d.ts +9 -9
- package/types/Cardinal.d.ts +13 -13
- package/types/Gradient.d.ts +14 -14
- package/types/Hermite.d.ts +18 -18
- package/types/Map.d.ts +9 -9
- package/types/MapConfig.d.ts +28 -0
- package/types/MapCoordinate.d.ts +23 -0
- package/types/Matrix4.d.ts +47 -47
- package/types/SVG.d.ts +243 -243
- package/types/SVGConfig.d.ts +71 -89
- package/types/Shader.d.ts +16 -16
- package/types/Texture.d.ts +16 -16
- package/types/TreeConfig.d.ts +36 -36
- package/types/TreeOption.d.ts +48 -48
- package/types/animation.d.ts +5 -5
- package/types/assemble.d.ts +5 -5
- package/types/getLoopColors.d.ts +5 -5
- package/types/getWebGLContext.d.ts +7 -7
- package/types/index.d.ts +179 -165
- package/types/move.d.ts +5 -5
- package/types/option.d.ts +12 -12
- package/types/painterConfig.d.ts +4 -4
- package/types/rotate.d.ts +5 -5
- package/types/ruler.d.ts +10 -10
- package/types/scale.d.ts +5 -5
- package/types/throttle.d.ts +5 -5
- package/types/ui-canvas.d.ts +4 -4
- package/types/uni-canvas.d.ts +3 -3
- package/uni-app/drawImage.js +19 -19
- package/uni-app/ui-canvas.vue +284 -284
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
|
@@ -280,4 +280,21 @@ v1.2.1:
|
|
|
280
280
|
- 新增功能
|
|
281
281
|
1、树布局 treeLayout
|
|
282
282
|
* 新增doUpdate方法
|
|
283
|
-
* 新增deg文字建议旋转弧度
|
|
283
|
+
* 新增deg文字建议旋转弧度
|
|
284
|
+
v1.3.0:
|
|
285
|
+
date:
|
|
286
|
+
changes:
|
|
287
|
+
- 修复bug
|
|
288
|
+
1、SVG 画笔
|
|
289
|
+
* 修复图形stroke模式的lineWidth、lineDash、lineCap、lineJoin不生效问题
|
|
290
|
+
2、从types中移除被废弃的画笔属性
|
|
291
|
+
- 新增功能
|
|
292
|
+
1、Canvas画笔
|
|
293
|
+
* 配置config添加可配置项
|
|
294
|
+
> rectRadius 矩形圆角半径
|
|
295
|
+
* clearCircle 圆形橡皮擦
|
|
296
|
+
2、SVG画笔
|
|
297
|
+
* 配置config添加可配置项
|
|
298
|
+
> rectRadius 矩形圆角半径
|
|
299
|
+
3、坐标系
|
|
300
|
+
* 地理坐标系 mapCoordinate
|
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
|
@@ -114,77 +114,53 @@
|
|
|
114
114
|
|
|
115
115
|
你可以查看[VISLite 贡献指南](./.github/CONTRIBUTING.md)文件了解更多细节,查看[AUTHORS.txt](./AUTHORS.txt)了解所有的贡献者。
|
|
116
116
|
|
|
117
|
-
##
|
|
118
|
-
|
|
119
|
-
| Project | Status | Download | Description |
|
|
120
|
-
| ----------------- | -------------------------------------------------- | ------------------------------------------------------------ | -------------------------------------------------------------------- |
|
|
121
|
-
| [@vislite/canvas] | [![vislite-canvas-status]][vislite-canvas-package] | [![vislite-canvas-download-status]][vislite-canvas-download] | 基于VISLite的Canvas画笔开发的绘制方法 |
|
|
122
|
-
| [@vislite/chart] | [![vislite-chart-status]][vislite-chart-package] | [![vislite-chart-download-status]][vislite-chart-download] | 基于VISLite开发的可视化图表库(基础布局版本可跨端,类似无头ECharts) |
|
|
123
|
-
| [H5Charts] | [![h5charts-status]][h5charts-package] | [![h5charts-download-status]][h5charts-download] | 一个基于 JavaScript 的开源可视化图表库 |
|
|
124
|
-
|
|
125
|
-
[@vislite/canvas]: https://github.com/oi-contrib/H5Charts/blob/master/modules/vislite-plugin-canvas/README.md
|
|
126
|
-
[vislite-canvas-package]: https://npmjs.com/package/@vislite/canvas
|
|
127
|
-
[vislite-canvas-status]: https://img.shields.io/npm/v/@vislite/canvas.svg
|
|
128
|
-
[vislite-canvas-download-status]: https://img.shields.io/npm/dm/@vislite/canvas.svg
|
|
129
|
-
[vislite-canvas-download]: https://zxl20070701.github.io/toolbox/#/npm-download?packages=@vislite/canvas&interval=7
|
|
130
|
-
[@vislite/chart]: https://github.com/oi-contrib/H5Charts/blob/master/modules/vislite-plugin-chart/README.md
|
|
131
|
-
[vislite-chart-package]: https://npmjs.com/package/@vislite/chart
|
|
132
|
-
[vislite-chart-status]: https://img.shields.io/npm/v/@vislite/chart.svg
|
|
133
|
-
[vislite-chart-download-status]: https://img.shields.io/npm/dm/@vislite/chart.svg
|
|
134
|
-
[vislite-chart-download]: https://zxl20070701.github.io/toolbox/#/npm-download?packages=@vislite/chart&interval=7
|
|
135
|
-
[H5Charts]: https://github.com/oi-contrib/H5Charts
|
|
136
|
-
[h5charts-package]: https://npmjs.com/package/h5charts
|
|
137
|
-
[h5charts-status]: https://img.shields.io/npm/v/h5charts.svg
|
|
138
|
-
[h5charts-download-status]: https://img.shields.io/npm/dm/h5charts.svg
|
|
139
|
-
[h5charts-download]: https://zxl20070701.github.io/toolbox/#/npm-download?packages=h5charts&interval=7
|
|
140
|
-
|
|
141
|
-
此外,我们还基于此项目维护了一个用例项目[dataGUI](https://oi-contrib.github.io/h5box/dataGUI/index.html),比如:
|
|
117
|
+
## 例子项目
|
|
142
118
|
|
|
143
119
|
### 水分子式 H2O
|
|
144
120
|
|
|
145
|
-
<a href="https://oi-contrib.github.io/h5box/dataGUI/index.html
|
|
121
|
+
<a href="https://oi-contrib.github.io/h5box/dataGUI/index.html#/h2o" target="_blank">
|
|
146
122
|
<img src="https://oi-contrib.github.io/h5box/snipping/h2o.png">
|
|
147
123
|
</a>
|
|
148
124
|
|
|
149
125
|
### 手式解锁
|
|
150
126
|
|
|
151
|
-
<a href="https://oi-contrib.github.io/h5box/dataGUI/index.html
|
|
127
|
+
<a href="https://oi-contrib.github.io/h5box/dataGUI/index.html#/manual-unlocking" target="_blank">
|
|
152
128
|
<img src="https://oi-contrib.github.io/h5box/snipping/manual-unlocking.jpeg">
|
|
153
129
|
</a>
|
|
154
130
|
|
|
155
131
|
### 3D环图
|
|
156
132
|
|
|
157
|
-
<a href="https://oi-contrib.github.io/h5box/dataGUI/index.html
|
|
133
|
+
<a href="https://oi-contrib.github.io/h5box/dataGUI/index.html#/ring3d" target="_blank">
|
|
158
134
|
<img src="https://oi-contrib.github.io/h5box/snipping/ring3d.jpeg">
|
|
159
135
|
</a>
|
|
160
136
|
|
|
161
137
|
### 径向树状图
|
|
162
138
|
|
|
163
|
-
<a href="https://oi-contrib.github.io/h5box/dataGUI/index.html
|
|
139
|
+
<a href="https://oi-contrib.github.io/h5box/dataGUI/index.html#/tree-radial" target="_blank">
|
|
164
140
|
<img src="https://oi-contrib.github.io/h5box/snipping/tree-radial.jpeg">
|
|
165
141
|
</a>
|
|
166
142
|
|
|
167
143
|
### 桑基图
|
|
168
144
|
|
|
169
|
-
<a href="https://oi-contrib.github.io/h5box/dataGUI/index.html
|
|
145
|
+
<a href="https://oi-contrib.github.io/h5box/dataGUI/index.html#/sankey" target="_blank">
|
|
170
146
|
<img src="https://oi-contrib.github.io/h5box/snipping/sankey.jpeg">
|
|
171
147
|
</a>
|
|
172
148
|
|
|
173
149
|
### 可缩放折线图
|
|
174
150
|
|
|
175
|
-
<a href="https://oi-contrib.github.io/h5box/dataGUI/index.html
|
|
151
|
+
<a href="https://oi-contrib.github.io/h5box/dataGUI/index.html#/zoom-line" target="_blank">
|
|
176
152
|
<img src="https://oi-contrib.github.io/h5box/snipping/zoom-line.jpeg">
|
|
177
153
|
</a>
|
|
178
154
|
|
|
179
155
|
### 从上到下树状图
|
|
180
156
|
|
|
181
|
-
<a href="https://oi-contrib.github.io/h5box/dataGUI/index.html
|
|
157
|
+
<a href="https://oi-contrib.github.io/h5box/dataGUI/index.html#/tree-orient-top-bottom" target="_blank">
|
|
182
158
|
<img src="https://oi-contrib.github.io/h5box/snipping/tree-orient-top-bottom.jpeg">
|
|
183
159
|
</a>
|
|
184
160
|
|
|
185
161
|
### 可视化大屏
|
|
186
162
|
|
|
187
|
-
<a href="https://oi-contrib.github.io/h5box/dataGUI/index.html
|
|
163
|
+
<a href="https://oi-contrib.github.io/h5box/dataGUI/index.html#/bigview" target="_blank">
|
|
188
164
|
<img src="https://oi-contrib.github.io/h5box/snipping/bigview.jpeg">
|
|
189
165
|
</a>
|
|
190
166
|
|
package/lib/Buffer/index.es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Buffer of VISLite JavaScript Library v1.
|
|
2
|
+
* Buffer of VISLite JavaScript Library v1.3.0-alpha.1
|
|
3
3
|
* git+https://github.com/oi-contrib/VISLite.git
|
|
4
4
|
*/
|
|
5
5
|
var t=function(){function t(t,i){void 0===i&&(i=!1),this.__painter=t,this.__isElement=i,this.__buffer=function(t){return t.createBuffer()}(t),this.__type=i?t.ELEMENT_ARRAY_BUFFER:t.ARRAY_BUFFER}return t.prototype.use=function(){return this.__painter.bindBuffer(this.__type,this.__buffer),this},t.prototype.write=function(t){return function(t,i,e,_){var r=e?t.ELEMENT_ARRAY_BUFFER:t.ARRAY_BUFFER;t.bufferData(r,i,_)}(this.__painter,t,this.__isElement,this.__painter.STATIC_DRAW),this.__fsize=t.BYTES_PER_ELEMENT,this},t.prototype.divide=function(t,i,e,_){return void 0===_&&(_=0),function(t,i,e,_,r,n,s){t.vertexAttribPointer(i,e,_,s,r,n),t.enableVertexAttribArray(i)}(this.__painter,t,i,this.__painter.FLOAT,e*this.__fsize,_*this.__fsize,!1),this},t}();export{t as default};
|
package/lib/Canvas/index.es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Canvas of VISLite JavaScript Library v1.
|
|
2
|
+
* Canvas of VISLite JavaScript Library v1.3.0-alpha.1
|
|
3
3
|
* git+https://github.com/oi-contrib/VISLite.git
|
|
4
4
|
*/
|
|
5
5
|
/******************************************************************************
|
|
@@ -135,9 +135,24 @@ var initCircle = function (painter, cx, cy, r) {
|
|
|
135
135
|
painter.arc(cx, cy, r, 0, Math.PI * 2);
|
|
136
136
|
return painter;
|
|
137
137
|
};
|
|
138
|
-
var initRect = function (painter, x, y, width, height) {
|
|
138
|
+
var initRect = function (painter, config, x, y, width, height) {
|
|
139
139
|
painter.beginPath();
|
|
140
|
-
|
|
140
|
+
var rectRadius = [];
|
|
141
|
+
if (Array.isArray(config.rectRadius) && config.rectRadius.length > 0) {
|
|
142
|
+
for (var index = 0; index < 4; index++) {
|
|
143
|
+
rectRadius.push.apply(rectRadius, config.rectRadius);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
if (rectRadius.length >= 4) {
|
|
147
|
+
painter.arc(x + rectRadius[0], y + rectRadius[0], rectRadius[0], Math.PI, Math.PI * 1.5);
|
|
148
|
+
painter.arc(x + width - rectRadius[1], y + rectRadius[1], rectRadius[1], 1.5 * Math.PI, 0);
|
|
149
|
+
painter.arc(x + width - rectRadius[2], y + height - rectRadius[2], rectRadius[2], 0, Math.PI * 0.5);
|
|
150
|
+
painter.arc(x + rectRadius[3], y + height - rectRadius[3], rectRadius[3], 0.5 * Math.PI, Math.PI);
|
|
151
|
+
painter.closePath();
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
painter.rect(x, y, width, height);
|
|
155
|
+
}
|
|
141
156
|
return painter;
|
|
142
157
|
};
|
|
143
158
|
|
|
@@ -167,7 +182,8 @@ function defaultFactory (type) {
|
|
|
167
182
|
"fontWeight": 400,
|
|
168
183
|
"fontStyle": "normal",
|
|
169
184
|
"arcStartCap": 'butt',
|
|
170
|
-
"arcEndCap": 'butt'
|
|
185
|
+
"arcEndCap": 'butt',
|
|
186
|
+
"rectRadius": []
|
|
171
187
|
};
|
|
172
188
|
var init = {
|
|
173
189
|
"fillStyle": 'black',
|
|
@@ -430,6 +446,19 @@ var Painter = (function () {
|
|
|
430
446
|
this.painter.clearRect(x, y, w, h);
|
|
431
447
|
return this;
|
|
432
448
|
};
|
|
449
|
+
Painter.prototype.clearCircle = function (cx, cy, r) {
|
|
450
|
+
if (this.__region && !this.__onlyView)
|
|
451
|
+
this.__region.clearCircle(cx, cy, r);
|
|
452
|
+
if (this.__isPainter && this.__onlyRegion)
|
|
453
|
+
return this;
|
|
454
|
+
this.painter.beginPath();
|
|
455
|
+
this.painter.globalCompositeOperation = "destination-out";
|
|
456
|
+
this.painter.arc(cx, cy, r, 0, Math.PI * 2);
|
|
457
|
+
this.painter.fill();
|
|
458
|
+
this.painter.globalCompositeOperation = "source-over";
|
|
459
|
+
this.painter.closePath();
|
|
460
|
+
return this;
|
|
461
|
+
};
|
|
433
462
|
Painter.prototype.fillArc = function (cx, cy, r1, r2, beginDeg, deg) {
|
|
434
463
|
if (this.__region && !this.__onlyView)
|
|
435
464
|
this.__region.fillArc(cx, cy, r1, r2, beginDeg, deg);
|
|
@@ -487,7 +516,7 @@ var Painter = (function () {
|
|
|
487
516
|
this.__region.fillRect(x, y, width, height);
|
|
488
517
|
if (this.__isPainter && this.__onlyRegion)
|
|
489
518
|
return this;
|
|
490
|
-
initRect(this.painter, x, y, width, height).fill();
|
|
519
|
+
initRect(this.painter, this.__specialConfig, x, y, width, height).fill();
|
|
491
520
|
return this;
|
|
492
521
|
};
|
|
493
522
|
Painter.prototype.strokeRect = function (x, y, width, height) {
|
|
@@ -495,7 +524,7 @@ var Painter = (function () {
|
|
|
495
524
|
this.__region.strokeRect(x, y, width, height);
|
|
496
525
|
if (this.__isPainter && this.__onlyRegion)
|
|
497
526
|
return this;
|
|
498
|
-
initRect(this.painter, x, y, width, height).stroke();
|
|
527
|
+
initRect(this.painter, this.__specialConfig, x, y, width, height).stroke();
|
|
499
528
|
return this;
|
|
500
529
|
};
|
|
501
530
|
Painter.prototype.fullRect = function (x, y, width, height) {
|
|
@@ -503,7 +532,7 @@ var Painter = (function () {
|
|
|
503
532
|
this.__region.fullRect(x, y, width, height);
|
|
504
533
|
if (this.__isPainter && this.__onlyRegion)
|
|
505
534
|
return this;
|
|
506
|
-
initRect(this.painter, x, y, width, height);
|
|
535
|
+
initRect(this.painter, this.__specialConfig, x, y, width, height);
|
|
507
536
|
this.painter.fill();
|
|
508
537
|
this.painter.stroke();
|
|
509
538
|
return this;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Canvas of VISLite JavaScript Library v1.
|
|
2
|
+
* Canvas of VISLite JavaScript Library v1.3.0-alpha.1
|
|
3
3
|
* git+https://github.com/oi-contrib/VISLite.git
|
|
4
4
|
*/
|
|
5
|
-
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(){return e=Object.assign||function(t){for(var i,e=1,n=arguments.length;e<n;e++)for(var r in i=arguments[e])Object.prototype.hasOwnProperty.call(i,r)&&(t[r]=i[r]);return t},e.apply(this,arguments)};"function"==typeof SuppressedError&&SuppressedError;var n=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)]};var r=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},o=function(t,i,e,r,o,s,_,a){if(o>s){var h=o;o=s,s=h}return _%=2*Math.PI,a>=1.999999*Math.PI||a<=1.999999*-Math.PI?a=2*Math.PI:a%=2*Math.PI,function(t,i,e,r,o,s,_){i<0&&(t+=i,i*=-1);var a,h=[];a=n(0,0,t,o,0),h[0]=a[0],h[1]=a[1],a=n(0,0,i,a[0],a[1]),h[2]=a[0],h[3]=a[1],a=n(0,0,t,s,0),h[4]=a[0],h[5]=a[1],a=n(0,0,i,a[0],a[1]),h[6]=a[0],h[7]=a[1],_(t,t+i,h[0]+e,h[1]+r,h[4]+e,h[5]+r,h[2]+e,h[3]+r,h[6]+e,h[7]+r,.5*(s-o))}(_,a,e,r,o,s,(function(n,_,a,h,l,u,p,f,c,g,y){y<0&&(y=-y),t.beginPath(),t.moveTo(a,h),t.arc(e,r,o,n,_,!1),"round"==i.arcEndCap?t.arc(.5*(p+c),.5*(f+g),y,_-Math.PI,_,!0):"-round"==i.arcEndCap?t.arc(.5*(p+c),.5*(f+g),y,_-Math.PI,_,!1):t.lineTo(c,g),t.arc(e,r,s,_,n,!0),"round"==i.arcStartCap?t.arc(.5*(a+l),.5*(h+u),y,n,n-Math.PI,!0):"-round"==i.arcStartCap?t.arc(.5*(a+l),.5*(h+u),y,n,n-Math.PI,!1):t.lineTo(a,h)})),"butt"==i.arcStartCap&&t.closePath(),t},s=function(t,i,e,n){return t.beginPath(),t.moveTo(i+n,e),t.arc(i,e,n,0,2*Math.PI),t},_=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="",_=0;_<i.length;_++)t.measureText(s+i[_]).width>e||/\n$/.test(s)?(r(s,((o+=1)-.5)*n),s=i[_]):_==i.length-1?(o+=1,r(s+i[_],(o-.5)*n)):s+=i[_];return o*n}function h(t){var i={fontSize:16,fontFamily:"sans-serif",fontWeight:400,fontStyle:"normal",arcStartCap:"butt",arcEndCap:"butt"},n={fillStyle:"black",strokeStyle:"black",lineWidth:1,lineCap:"butt",lineJoin:"miter",lineDash:[],textAlign:"left",textBaseline:"middle",shadowBlur:0,shadowColor:"black"};return"special"==t?i:"init"==t?n:e(e({},i),n)}var l=function(){function t(t,i,e,n,r){void 0===i&&(i={}),void 0===n&&(n=!1),this.__region=null,this.__onlyRegion=!1,this.__onlyView=!1,this.__specialConfig=h("special"),this.__initConfig=h("init"),this.painter=t.getContext("2d",i),this.__region=e,this.__isPainter=n,this.painter.textBaseline="middle",this.painter.textAlign="left"}return t.prototype.useConfig=function(t,i){if(this.__region&&!this.__onlyView&&["fillStyle","strokeStyle","shadowBlur","shadowColor"].indexOf(t)<0&&this.__region.useConfig(t,i),this.__isPainter&&this.__onlyRegion)return this;if("lineDash"==t)this.painter.setLineDash&&this.painter.setLineDash(i);else if(t in this.__specialConfig)"fontSize"==t&&(i=Math.round(i)),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.__onlyView&&this.__region.fillText(t,i,e,n),this.__isPainter&&this.__onlyRegion||(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.__onlyView&&this.__region.strokeText(t,i,e,n),this.__isPainter&&this.__onlyRegion||(this.painter.save(),r(this.painter,this.__specialConfig,i,e,n).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.__onlyView&&this.__region.fullText(t,i,e,n),this.__isPainter&&this.__onlyRegion||(this.painter.save(),r(this.painter,this.__specialConfig,i,e,n),this.painter.fillText(t,0,0),this.painter.strokeText(t,0,0),this.painter.restore()),this},t.prototype.fillTexts=function(t,i,e,n,o,s){var _=this;void 0===o&&(o=1.2),void 0===s&&(s=0);var h=0;if(this.__region&&!this.__onlyView&&(h=this.__region.fillTexts(t,i,e,n,o)),this.__isPainter&&this.__onlyRegion)return h;this.painter.save(),r(this.painter,this.__specialConfig,i,e,s);var l=a(this.painter,t,n,this.__specialConfig.fontSize*o,(function(t,i){_.painter.fillText(t,0,i)}));return this.painter.restore(),l},t.prototype.strokeTexts=function(t,i,e,n,o,s){var _=this;void 0===o&&(o=1.2),void 0===s&&(s=0);var h=0;if(this.__region&&!this.__onlyView&&(h=this.__region.fillTexts(t,i,e,n,o)),this.__isPainter&&this.__onlyRegion)return h;this.painter.save(),r(this.painter,this.__specialConfig,i,e,s);var l=a(this.painter,t,n,this.__specialConfig.fontSize*o,(function(t,i){_.painter.strokeText(t,0,i)}));return this.painter.restore(),l},t.prototype.fullTexts=function(t,i,e,n,o,s){var _=this;void 0===o&&(o=1.2),void 0===s&&(s=0);var h=0;if(this.__region&&!this.__onlyView&&(h=this.__region.fillTexts(t,i,e,n,o)),this.__isPainter&&this.__onlyRegion)return h;this.painter.save(),r(this.painter,this.__specialConfig,i,e,s);var l=a(this.painter,t,n,this.__specialConfig.fontSize*o,(function(t,i){_.painter.fillText(t,0,i),_.painter.strokeText(t,0,i)}));return this.painter.restore(),l},t.prototype.beginPath=function(){return this.__region&&!this.__onlyView&&this.__region.beginPath(),this.__isPainter&&this.__onlyRegion||this.painter.beginPath(),this},t.prototype.closePath=function(){return this.__region&&!this.__onlyView&&this.__region.closePath(),this.__isPainter&&this.__onlyRegion||this.painter.closePath(),this},t.prototype.moveTo=function(t,i){return this.__region&&!this.__onlyView&&this.__region.moveTo(t,i),this.__isPainter&&this.__onlyRegion||this.painter.moveTo(Math.round(t)+.5,Math.round(i)+.5),this},t.prototype.lineTo=function(t,i){return this.__region&&!this.__onlyView&&this.__region.lineTo(t,i),this.__isPainter&&this.__onlyRegion||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.__onlyView&&this.__region.arc(t,i,e,n,r),this.__isPainter&&this.__onlyRegion||this.painter.arc(t,i,e,n,n+r,r<0),this},t.prototype.fill=function(){return this.__region&&!this.__onlyView&&this.__region.fill(),this.__isPainter&&this.__onlyRegion||this.painter.fill(),this},t.prototype.stroke=function(){return this.__region&&!this.__onlyView&&this.__region.stroke(),this.__isPainter&&this.__onlyRegion||this.painter.stroke(),this},t.prototype.full=function(){return this.__region&&!this.__onlyView&&this.__region.full(),this.__isPainter&&this.__onlyRegion||(this.painter.fill(),this.painter.stroke()),this},t.prototype.save=function(){return this.__region&&!this.__onlyView&&this.__region.save(),this.__isPainter&&this.__onlyRegion||this.painter.save(),this},t.prototype.restore=function(){return this.__region&&!this.__onlyView&&this.__region.restore(),this.__isPainter&&this.__onlyRegion||this.painter.restore(),this},t.prototype.clip=function(){return this.__region&&!this.__onlyView&&this.__region.clip(),this.__isPainter&&this.__onlyRegion||this.painter.clip(),this},t.prototype.quadraticCurveTo=function(t,i,e,n){return this.__region&&!this.__onlyView&&this.__region.quadraticCurveTo(t,i,e,n),this.__isPainter&&this.__onlyRegion||this.painter.quadraticCurveTo(t,i,e,n),this},t.prototype.bezierCurveTo=function(t,i,e,n,r,o){return this.__region&&!this.__onlyView&&this.__region.bezierCurveTo(t,i,e,n,r,o),this.__isPainter&&this.__onlyRegion||this.painter.bezierCurveTo(t,i,e,n,r,o),this},t.prototype.clearRect=function(t,i,e,n){return this.__region&&!this.__onlyView&&this.__region.clearRect(t,i,e,n),this.__isPainter&&this.__onlyRegion||this.painter.clearRect(t,i,e,n),this},t.prototype.fillArc=function(t,i,e,n,r,s){return this.__region&&!this.__onlyView&&this.__region.fillArc(t,i,e,n,r,s),this.__isPainter&&this.__onlyRegion||o(this.painter,this.__specialConfig,t,i,e,n,r,s).fill(),this},t.prototype.strokeArc=function(t,i,e,n,r,s){return this.__region&&!this.__onlyView&&this.__region.strokeArc(t,i,e,n,r,s),this.__isPainter&&this.__onlyRegion||o(this.painter,this.__specialConfig,t,i,e,n,r,s).stroke(),this},t.prototype.fullArc=function(t,i,e,n,r,s){return this.__region&&!this.__onlyView&&this.__region.fullArc(t,i,e,n,r,s),this.__isPainter&&this.__onlyRegion||(o(this.painter,this.__specialConfig,t,i,e,n,r,s),this.painter.fill(),this.painter.stroke()),this},t.prototype.fillCircle=function(t,i,e){return this.__region&&!this.__onlyView&&this.__region.fillCircle(t,i,e),this.__isPainter&&this.__onlyRegion||s(this.painter,t,i,e).fill(),this},t.prototype.strokeCircle=function(t,i,e){return this.__region&&!this.__onlyView&&this.__region.strokeCircle(t,i,e),this.__isPainter&&this.__onlyRegion||s(this.painter,t,i,e).stroke(),this},t.prototype.fullCircle=function(t,i,e){return this.__region&&!this.__onlyView&&this.__region.fullCircle(t,i,e),this.__isPainter&&this.__onlyRegion||(s(this.painter,t,i,e),this.painter.fill(),this.painter.stroke()),this},t.prototype.fillRect=function(t,i,e,n){return this.__region&&!this.__onlyView&&this.__region.fillRect(t,i,e,n),this.__isPainter&&this.__onlyRegion||_(this.painter,t,i,e,n).fill(),this},t.prototype.strokeRect=function(t,i,e,n){return this.__region&&!this.__onlyView&&this.__region.strokeRect(t,i,e,n),this.__isPainter&&this.__onlyRegion||_(this.painter,t,i,e,n).stroke(),this},t.prototype.fullRect=function(t,i,e,n){return this.__region&&!this.__onlyView&&this.__region.fullRect(t,i,e,n),this.__isPainter&&this.__onlyRegion||(_(this.painter,t,i,e,n),this.painter.fill(),this.painter.stroke()),this},t.prototype.draw=function(){return Promise.resolve()},t.prototype.drawImage=function(t,i,e,n,r,o){var s=this;return void 0===o&&(o=!1),new Promise((function(_){if(s.__region&&!s.__onlyView&&s.__region.fillRect(i,e,n,r),s.__isPainter&&s.__onlyRegion)_({});else if("string"!=typeof t||o)s.painter.drawImage(t,i,e,n,r),_({});else{var a=new Image;a.onload=function(){s.painter.drawImage(a,i,e,n,r),_({})},a.src=t}}))},t.prototype.install=function(t){var i=this,e=function(e){if(e in n)throw new Error("VISLite Canvas:Method already exists and cannot be overwritten.");n[e]=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];var o=t[e].apply(i,n);return null!=o?o:i}},n=this;for(var r in t)e(r);return this},t}();var u=function(t,i){var e={value:function(){return t},setColor:function(n,r){return t.addColorStop(i?i(n):n,r),e}};return e},p=function(t){function e(i,e,n,r){void 0===n&&(n={}),void 0===r&&(r=1);var o=t.call(this,i,n,e?new l(e,{willReadFrequently:!0}):void 0,!0,r)||this;return o.name="Canvas",o.__regionList={},o.__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]+e<i){r[o]=+(r[o]+e).toFixed(7);break}o<n-1&&(r[o]=t)}return r}}(0,255,10,3),o.__scaleSize=r,o.setRegion(""),o}return i(e,t),e.prototype.config=function(t){for(var i in t)this.useConfig(i,t[i]);return this},e.prototype.reset=function(){return this.config(h()),this},e.prototype.onlyRegion=function(t){return this.__onlyRegion=t,this},e.prototype.onlyView=function(t){return this.__onlyView=t,this},e.prototype.setRegion=function(t){if(this.__region)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){var r=e.__region?e.__region.painter.getImageData(t-.5,i-.5,1,1):{data:[0,0,0,0]},o=r.data,s=function(){if(e.__region)for(var t in e.__regionList)if("rgb("+o[0]+","+o[1]+","+o[2]+")"==e.__regionList[t]){n(t);break}n("")};o?s():r.then((function(t){o=t,s()}))}))},e.prototype.textWidth=function(t){this.painter.save(),r(this.painter,this.__specialConfig,0,0,0);var i=this.painter.measureText(t+"").width;return this.painter.restore(),i},e.prototype.getContext=function(t){return void 0===t&&(t=!1),t?this.__region?this.__region.painter:null:this.painter},e.prototype.getInfo=function(){return{width:this.painter.canvas.width/this.__scaleSize,height:this.painter.canvas.height/this.__scaleSize}},e.prototype.createLinearGradient=function(t,i,e,n){return function(t,i,e,n,r){var o=t.createLinearGradient(i,e,n,r);return u(o)}(this.painter,t,i,e,n)},e.prototype.createRadialGradient=function(t,i,e){return function(t,i,e,n){var r=t.createRadialGradient(i,e,0,i,e,n);return u(r)}(this.painter,t,i,e)},e.prototype.createConicGradient=function(t,i,e,n){return function(t,i,e,n,r){var o=t.createConicGradient(n,i,e);return u(o,r?function(t){return r/(2*Math.PI)*t}:void 0)}(this.painter,t,i,e,n)},e.prototype.getColor=function(t,i){t*=this.__scaleSize,i*=this.__scaleSize;var e=this.painter.getImageData(t-.5,i-.5,1,1).data;return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},e}(l);var f=function(t){function e(i,e,n,r){void 0===e&&(e={}),void 0===n&&(n=0),void 0===r&&(r=0);var o=this;if(!i)throw new Error("VISLite Canvas:The mount point requires an HTMLElement type but encountered null.");e=function(t,i){for(var e in t)i[e]=t[e];return i}(e,{region:!0,willReadFrequently:!1}),n=n||i.clientWidth,r=r||i.clientHeight;var s,_=null,a=i;a._vislite_canvas_?(s=a._vislite_canvas_[0],_=a._vislite_canvas_[1]):(s=document.createElement("canvas"),i.appendChild(s),e.region&&(_=document.createElement("canvas")),a._vislite_canvas_=[s,_],i.setAttribute("vislite","Canvas"));for(var h=[_,s],l=0;l<h.length;l++){var u=h[l];u&&(u.style.width=n+"px",u.setAttribute("width",l*n+n+""),u.style.height=r+"px",u.setAttribute("height",l*r+r+""))}return(o=t.call(this,s,_,{willReadFrequently:e.willReadFrequently},2)||this).__canvas=s,o.__el=i,o.painter.scale(2,2),o}return i(e,t),e.prototype.toDataURL=function(){var t=this;return new Promise((function(i){i(t.__canvas.toDataURL())}))},e.prototype.bind=function(t,i){var e=this;return this.__el.addEventListener(t,(function(t){e.getRegion(t.offsetX,t.offsetY).then((function(e){i(e,t.offsetX,t.offsetY)}))})),this},e}(p);export{f as default};
|
|
5
|
+
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(){return e=Object.assign||function(t){for(var i,e=1,n=arguments.length;e<n;e++)for(var r in i=arguments[e])Object.prototype.hasOwnProperty.call(i,r)&&(t[r]=i[r]);return t},e.apply(this,arguments)};"function"==typeof SuppressedError&&SuppressedError;var n=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)]};var r=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},o=function(t,i,e,r,o,s,_,a){if(o>s){var h=o;o=s,s=h}return _%=2*Math.PI,a>=1.999999*Math.PI||a<=1.999999*-Math.PI?a=2*Math.PI:a%=2*Math.PI,function(t,i,e,r,o,s,_){i<0&&(t+=i,i*=-1);var a,h=[];a=n(0,0,t,o,0),h[0]=a[0],h[1]=a[1],a=n(0,0,i,a[0],a[1]),h[2]=a[0],h[3]=a[1],a=n(0,0,t,s,0),h[4]=a[0],h[5]=a[1],a=n(0,0,i,a[0],a[1]),h[6]=a[0],h[7]=a[1],_(t,t+i,h[0]+e,h[1]+r,h[4]+e,h[5]+r,h[2]+e,h[3]+r,h[6]+e,h[7]+r,.5*(s-o))}(_,a,e,r,o,s,(function(n,_,a,h,l,p,u,c,f,g,y){y<0&&(y=-y),t.beginPath(),t.moveTo(a,h),t.arc(e,r,o,n,_,!1),"round"==i.arcEndCap?t.arc(.5*(u+f),.5*(c+g),y,_-Math.PI,_,!0):"-round"==i.arcEndCap?t.arc(.5*(u+f),.5*(c+g),y,_-Math.PI,_,!1):t.lineTo(f,g),t.arc(e,r,s,_,n,!0),"round"==i.arcStartCap?t.arc(.5*(a+l),.5*(h+p),y,n,n-Math.PI,!0):"-round"==i.arcStartCap?t.arc(.5*(a+l),.5*(h+p),y,n,n-Math.PI,!1):t.lineTo(a,h)})),"butt"==i.arcStartCap&&t.closePath(),t},s=function(t,i,e,n){return t.beginPath(),t.moveTo(i+n,e),t.arc(i,e,n,0,2*Math.PI),t},_=function(t,i,e,n,r,o){t.beginPath();var s=[];if(Array.isArray(i.rectRadius)&&i.rectRadius.length>0)for(var _=0;_<4;_++)s.push.apply(s,i.rectRadius);return s.length>=4?(t.arc(e+s[0],n+s[0],s[0],Math.PI,1.5*Math.PI),t.arc(e+r-s[1],n+s[1],s[1],1.5*Math.PI,0),t.arc(e+r-s[2],n+o-s[2],s[2],0,.5*Math.PI),t.arc(e+s[3],n+o-s[3],s[3],.5*Math.PI,Math.PI),t.closePath()):t.rect(e,n,r,o),t};function a(t,i,e,n,r){for(var o=0,s="",_=0;_<i.length;_++)t.measureText(s+i[_]).width>e||/\n$/.test(s)?(r(s,((o+=1)-.5)*n),s=i[_]):_==i.length-1?(o+=1,r(s+i[_],(o-.5)*n)):s+=i[_];return o*n}function h(t){var i={fontSize:16,fontFamily:"sans-serif",fontWeight:400,fontStyle:"normal",arcStartCap:"butt",arcEndCap:"butt",rectRadius:[]},n={fillStyle:"black",strokeStyle:"black",lineWidth:1,lineCap:"butt",lineJoin:"miter",lineDash:[],textAlign:"left",textBaseline:"middle",shadowBlur:0,shadowColor:"black"};return"special"==t?i:"init"==t?n:e(e({},i),n)}var l=function(){function t(t,i,e,n,r){void 0===i&&(i={}),void 0===n&&(n=!1),this.__region=null,this.__onlyRegion=!1,this.__onlyView=!1,this.__specialConfig=h("special"),this.__initConfig=h("init"),this.painter=t.getContext("2d",i),this.__region=e,this.__isPainter=n,this.painter.textBaseline="middle",this.painter.textAlign="left"}return t.prototype.useConfig=function(t,i){if(this.__region&&!this.__onlyView&&["fillStyle","strokeStyle","shadowBlur","shadowColor"].indexOf(t)<0&&this.__region.useConfig(t,i),this.__isPainter&&this.__onlyRegion)return this;if("lineDash"==t)this.painter.setLineDash&&this.painter.setLineDash(i);else if(t in this.__specialConfig)"fontSize"==t&&(i=Math.round(i)),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.__onlyView&&this.__region.fillText(t,i,e,n),this.__isPainter&&this.__onlyRegion||(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.__onlyView&&this.__region.strokeText(t,i,e,n),this.__isPainter&&this.__onlyRegion||(this.painter.save(),r(this.painter,this.__specialConfig,i,e,n).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.__onlyView&&this.__region.fullText(t,i,e,n),this.__isPainter&&this.__onlyRegion||(this.painter.save(),r(this.painter,this.__specialConfig,i,e,n),this.painter.fillText(t,0,0),this.painter.strokeText(t,0,0),this.painter.restore()),this},t.prototype.fillTexts=function(t,i,e,n,o,s){var _=this;void 0===o&&(o=1.2),void 0===s&&(s=0);var h=0;if(this.__region&&!this.__onlyView&&(h=this.__region.fillTexts(t,i,e,n,o)),this.__isPainter&&this.__onlyRegion)return h;this.painter.save(),r(this.painter,this.__specialConfig,i,e,s);var l=a(this.painter,t,n,this.__specialConfig.fontSize*o,(function(t,i){_.painter.fillText(t,0,i)}));return this.painter.restore(),l},t.prototype.strokeTexts=function(t,i,e,n,o,s){var _=this;void 0===o&&(o=1.2),void 0===s&&(s=0);var h=0;if(this.__region&&!this.__onlyView&&(h=this.__region.fillTexts(t,i,e,n,o)),this.__isPainter&&this.__onlyRegion)return h;this.painter.save(),r(this.painter,this.__specialConfig,i,e,s);var l=a(this.painter,t,n,this.__specialConfig.fontSize*o,(function(t,i){_.painter.strokeText(t,0,i)}));return this.painter.restore(),l},t.prototype.fullTexts=function(t,i,e,n,o,s){var _=this;void 0===o&&(o=1.2),void 0===s&&(s=0);var h=0;if(this.__region&&!this.__onlyView&&(h=this.__region.fillTexts(t,i,e,n,o)),this.__isPainter&&this.__onlyRegion)return h;this.painter.save(),r(this.painter,this.__specialConfig,i,e,s);var l=a(this.painter,t,n,this.__specialConfig.fontSize*o,(function(t,i){_.painter.fillText(t,0,i),_.painter.strokeText(t,0,i)}));return this.painter.restore(),l},t.prototype.beginPath=function(){return this.__region&&!this.__onlyView&&this.__region.beginPath(),this.__isPainter&&this.__onlyRegion||this.painter.beginPath(),this},t.prototype.closePath=function(){return this.__region&&!this.__onlyView&&this.__region.closePath(),this.__isPainter&&this.__onlyRegion||this.painter.closePath(),this},t.prototype.moveTo=function(t,i){return this.__region&&!this.__onlyView&&this.__region.moveTo(t,i),this.__isPainter&&this.__onlyRegion||this.painter.moveTo(Math.round(t)+.5,Math.round(i)+.5),this},t.prototype.lineTo=function(t,i){return this.__region&&!this.__onlyView&&this.__region.lineTo(t,i),this.__isPainter&&this.__onlyRegion||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.__onlyView&&this.__region.arc(t,i,e,n,r),this.__isPainter&&this.__onlyRegion||this.painter.arc(t,i,e,n,n+r,r<0),this},t.prototype.fill=function(){return this.__region&&!this.__onlyView&&this.__region.fill(),this.__isPainter&&this.__onlyRegion||this.painter.fill(),this},t.prototype.stroke=function(){return this.__region&&!this.__onlyView&&this.__region.stroke(),this.__isPainter&&this.__onlyRegion||this.painter.stroke(),this},t.prototype.full=function(){return this.__region&&!this.__onlyView&&this.__region.full(),this.__isPainter&&this.__onlyRegion||(this.painter.fill(),this.painter.stroke()),this},t.prototype.save=function(){return this.__region&&!this.__onlyView&&this.__region.save(),this.__isPainter&&this.__onlyRegion||this.painter.save(),this},t.prototype.restore=function(){return this.__region&&!this.__onlyView&&this.__region.restore(),this.__isPainter&&this.__onlyRegion||this.painter.restore(),this},t.prototype.clip=function(){return this.__region&&!this.__onlyView&&this.__region.clip(),this.__isPainter&&this.__onlyRegion||this.painter.clip(),this},t.prototype.quadraticCurveTo=function(t,i,e,n){return this.__region&&!this.__onlyView&&this.__region.quadraticCurveTo(t,i,e,n),this.__isPainter&&this.__onlyRegion||this.painter.quadraticCurveTo(t,i,e,n),this},t.prototype.bezierCurveTo=function(t,i,e,n,r,o){return this.__region&&!this.__onlyView&&this.__region.bezierCurveTo(t,i,e,n,r,o),this.__isPainter&&this.__onlyRegion||this.painter.bezierCurveTo(t,i,e,n,r,o),this},t.prototype.clearRect=function(t,i,e,n){return this.__region&&!this.__onlyView&&this.__region.clearRect(t,i,e,n),this.__isPainter&&this.__onlyRegion||this.painter.clearRect(t,i,e,n),this},t.prototype.clearCircle=function(t,i,e){return this.__region&&!this.__onlyView&&this.__region.clearCircle(t,i,e),this.__isPainter&&this.__onlyRegion||(this.painter.beginPath(),this.painter.globalCompositeOperation="destination-out",this.painter.arc(t,i,e,0,2*Math.PI),this.painter.fill(),this.painter.globalCompositeOperation="source-over",this.painter.closePath()),this},t.prototype.fillArc=function(t,i,e,n,r,s){return this.__region&&!this.__onlyView&&this.__region.fillArc(t,i,e,n,r,s),this.__isPainter&&this.__onlyRegion||o(this.painter,this.__specialConfig,t,i,e,n,r,s).fill(),this},t.prototype.strokeArc=function(t,i,e,n,r,s){return this.__region&&!this.__onlyView&&this.__region.strokeArc(t,i,e,n,r,s),this.__isPainter&&this.__onlyRegion||o(this.painter,this.__specialConfig,t,i,e,n,r,s).stroke(),this},t.prototype.fullArc=function(t,i,e,n,r,s){return this.__region&&!this.__onlyView&&this.__region.fullArc(t,i,e,n,r,s),this.__isPainter&&this.__onlyRegion||(o(this.painter,this.__specialConfig,t,i,e,n,r,s),this.painter.fill(),this.painter.stroke()),this},t.prototype.fillCircle=function(t,i,e){return this.__region&&!this.__onlyView&&this.__region.fillCircle(t,i,e),this.__isPainter&&this.__onlyRegion||s(this.painter,t,i,e).fill(),this},t.prototype.strokeCircle=function(t,i,e){return this.__region&&!this.__onlyView&&this.__region.strokeCircle(t,i,e),this.__isPainter&&this.__onlyRegion||s(this.painter,t,i,e).stroke(),this},t.prototype.fullCircle=function(t,i,e){return this.__region&&!this.__onlyView&&this.__region.fullCircle(t,i,e),this.__isPainter&&this.__onlyRegion||(s(this.painter,t,i,e),this.painter.fill(),this.painter.stroke()),this},t.prototype.fillRect=function(t,i,e,n){return this.__region&&!this.__onlyView&&this.__region.fillRect(t,i,e,n),this.__isPainter&&this.__onlyRegion||_(this.painter,this.__specialConfig,t,i,e,n).fill(),this},t.prototype.strokeRect=function(t,i,e,n){return this.__region&&!this.__onlyView&&this.__region.strokeRect(t,i,e,n),this.__isPainter&&this.__onlyRegion||_(this.painter,this.__specialConfig,t,i,e,n).stroke(),this},t.prototype.fullRect=function(t,i,e,n){return this.__region&&!this.__onlyView&&this.__region.fullRect(t,i,e,n),this.__isPainter&&this.__onlyRegion||(_(this.painter,this.__specialConfig,t,i,e,n),this.painter.fill(),this.painter.stroke()),this},t.prototype.draw=function(){return Promise.resolve()},t.prototype.drawImage=function(t,i,e,n,r,o){var s=this;return void 0===o&&(o=!1),new Promise((function(_){if(s.__region&&!s.__onlyView&&s.__region.fillRect(i,e,n,r),s.__isPainter&&s.__onlyRegion)_({});else if("string"!=typeof t||o)s.painter.drawImage(t,i,e,n,r),_({});else{var a=new Image;a.onload=function(){s.painter.drawImage(a,i,e,n,r),_({})},a.src=t}}))},t.prototype.install=function(t){var i=this,e=function(e){if(e in n)throw new Error("VISLite Canvas:Method already exists and cannot be overwritten.");n[e]=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];var o=t[e].apply(i,n);return null!=o?o:i}},n=this;for(var r in t)e(r);return this},t}();var p=function(t,i){var e={value:function(){return t},setColor:function(n,r){return t.addColorStop(i?i(n):n,r),e}};return e},u=function(t){function e(i,e,n,r){void 0===n&&(n={}),void 0===r&&(r=1);var o=t.call(this,i,n,e?new l(e,{willReadFrequently:!0}):void 0,!0,r)||this;return o.name="Canvas",o.__regionList={},o.__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]+e<i){r[o]=+(r[o]+e).toFixed(7);break}o<n-1&&(r[o]=t)}return r}}(0,255,10,3),o.__scaleSize=r,o.setRegion(""),o}return i(e,t),e.prototype.config=function(t){for(var i in t)this.useConfig(i,t[i]);return this},e.prototype.reset=function(){return this.config(h()),this},e.prototype.onlyRegion=function(t){return this.__onlyRegion=t,this},e.prototype.onlyView=function(t){return this.__onlyView=t,this},e.prototype.setRegion=function(t){if(this.__region)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){var r=e.__region?e.__region.painter.getImageData(t-.5,i-.5,1,1):{data:[0,0,0,0]},o=r.data,s=function(){if(e.__region)for(var t in e.__regionList)if("rgb("+o[0]+","+o[1]+","+o[2]+")"==e.__regionList[t]){n(t);break}n("")};o?s():r.then((function(t){o=t,s()}))}))},e.prototype.textWidth=function(t){this.painter.save(),r(this.painter,this.__specialConfig,0,0,0);var i=this.painter.measureText(t+"").width;return this.painter.restore(),i},e.prototype.getContext=function(t){return void 0===t&&(t=!1),t?this.__region?this.__region.painter:null:this.painter},e.prototype.getInfo=function(){return{width:this.painter.canvas.width/this.__scaleSize,height:this.painter.canvas.height/this.__scaleSize}},e.prototype.createLinearGradient=function(t,i,e,n){return function(t,i,e,n,r){var o=t.createLinearGradient(i,e,n,r);return p(o)}(this.painter,t,i,e,n)},e.prototype.createRadialGradient=function(t,i,e){return function(t,i,e,n){var r=t.createRadialGradient(i,e,0,i,e,n);return p(r)}(this.painter,t,i,e)},e.prototype.createConicGradient=function(t,i,e,n){return function(t,i,e,n,r){var o=t.createConicGradient(n,i,e);return p(o,r?function(t){return r/(2*Math.PI)*t}:void 0)}(this.painter,t,i,e,n)},e.prototype.getColor=function(t,i){t*=this.__scaleSize,i*=this.__scaleSize;var e=this.painter.getImageData(t-.5,i-.5,1,1).data;return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},e}(l);var c=function(t){function e(i,e,n,r){void 0===e&&(e={}),void 0===n&&(n=0),void 0===r&&(r=0);var o=this;if(!i)throw new Error("VISLite Canvas:The mount point requires an HTMLElement type but encountered null.");e=function(t,i){for(var e in t)i[e]=t[e];return i}(e,{region:!0,willReadFrequently:!1}),n=n||i.clientWidth,r=r||i.clientHeight;var s,_=null,a=i;a._vislite_canvas_?(s=a._vislite_canvas_[0],_=a._vislite_canvas_[1]):(s=document.createElement("canvas"),i.appendChild(s),e.region&&(_=document.createElement("canvas")),a._vislite_canvas_=[s,_],i.setAttribute("vislite","Canvas"));for(var h=[_,s],l=0;l<h.length;l++){var p=h[l];p&&(p.style.width=n+"px",p.setAttribute("width",l*n+n+""),p.style.height=r+"px",p.setAttribute("height",l*r+r+""))}return(o=t.call(this,s,_,{willReadFrequently:e.willReadFrequently},2)||this).__canvas=s,o.__el=i,o.painter.scale(2,2),o}return i(e,t),e.prototype.toDataURL=function(){var t=this;return new Promise((function(i){i(t.__canvas.toDataURL())}))},e.prototype.bind=function(t,i){var e=this;return this.__el.addEventListener(t,(function(t){e.getRegion(t.offsetX,t.offsetY).then((function(e){i(e,t.offsetX,t.offsetY)}))})),this},e}(u);export{c as default};
|
package/lib/Cardinal/index.es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Cardinal of VISLite JavaScript Library v1.
|
|
2
|
+
* Cardinal of VISLite JavaScript Library v1.3.0-alpha.1
|
|
3
3
|
* git+https://github.com/oi-contrib/VISLite.git
|
|
4
4
|
*/
|
|
5
5
|
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}(),i=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]&&i[_-1][1]>i[_][1]||i[_+1][1]<i[_][1]&&i[_-1][1]<i[_][1]||i[_+1][1]==i[_][1]||i[_-1][1]==i[_][1]?0:(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}();export{i as default};
|
package/lib/Eoap/index.es.js
CHANGED
package/lib/Eoap/index.es.min.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Eoap of VISLite JavaScript Library v1.
|
|
2
|
+
* Eoap of VISLite JavaScript Library v1.3.0-alpha.1
|
|
3
3
|
* git+https://github.com/oi-contrib/VISLite.git
|
|
4
4
|
*/
|
|
5
5
|
var t=function(t,n,a,e){var r=Math.cos(t),h=Math.sin(t);return[n*r-a*h,n*h+a*r,e]},n=function(){function n(t,n){void 0===t&&(t=7),void 0===n&&(n=[107,36]),this.name="Eoap",this.__scale=t,this.__center=n}return n.prototype.use=function(n,a){var e,r,h,i,s,o,c=(e=(360-a)/180*Math.PI,r=100*this.__scale,h=0,i=0,s=Math.cos(e),o=Math.sin(e),[i*o+r*s,h,i*s-r*o]);return c=t(n/180*Math.PI,c[0],c[1],c[2]),c=t((90-this.__center[0])/180*Math.PI,c[0],c[1],c[2]),c=function(t,n,a,e){var r=Math.cos(t),h=Math.sin(t);return[n,a*r-e*h,a*h+e*r]}((90-this.__center[1])/180*Math.PI,c[0],c[1],c[2]),[-c[0],c[1],c[2]]},n}();export{n as default};
|
package/lib/Hermite/index.es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Hermite of VISLite JavaScript Library v1.
|
|
2
|
+
* Hermite of VISLite JavaScript Library v1.3.0-alpha.1
|
|
3
3
|
* git+https://github.com/oi-contrib/VISLite.git
|
|
4
4
|
*/
|
|
5
5
|
var t=function(){function t(t){void 0===t&&(t=.5),this.name="Hermite",this.__u=t}return t.prototype.setP=function(t,i,_,s,h,r){if(!(t<_))throw new Error("The point x-position should be increamented!");this.__a=t,this.__b=_;var o=this.__u*h,e=this.__u*r;return i/=_-t,s/=_-t,this.__MR=[2*i-2*s+o+e,3*s-3*i-2*o-e,o,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}();export{t as default};
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* MapCoordinate of VISLite JavaScript Library v1.3.0-alpha.1
|
|
3
|
+
* git+https://github.com/oi-contrib/VISLite.git
|
|
4
|
+
*/
|
|
5
|
+
var toString = Object.prototype.toString;
|
|
6
|
+
function getType(value) {
|
|
7
|
+
if (value == null) {
|
|
8
|
+
return value === undefined ? '[object Undefined]' : '[object Null]';
|
|
9
|
+
}
|
|
10
|
+
return toString.call(value);
|
|
11
|
+
}
|
|
12
|
+
function isPlainObject(value) {
|
|
13
|
+
if (value === null || typeof value !== 'object' || getType(value) != '[object Object]') {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
if (Object.getPrototypeOf(value) === null) {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
var proto = value;
|
|
20
|
+
while (Object.getPrototypeOf(proto) !== null) {
|
|
21
|
+
proto = Object.getPrototypeOf(proto);
|
|
22
|
+
}
|
|
23
|
+
return Object.getPrototypeOf(value) === proto;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function initOption(setOption, defaultOption) {
|
|
27
|
+
for (var key in setOption) {
|
|
28
|
+
defaultOption[key] = setOption[key];
|
|
29
|
+
}
|
|
30
|
+
return defaultOption;
|
|
31
|
+
}
|
|
32
|
+
function mergeOption(oldOption, newOption) {
|
|
33
|
+
(function doit(oldOption, newOption) {
|
|
34
|
+
for (var key in newOption) {
|
|
35
|
+
var value = newOption[key];
|
|
36
|
+
if (isPlainObject(value)) {
|
|
37
|
+
if (!oldOption[key])
|
|
38
|
+
oldOption[key] = {};
|
|
39
|
+
doit(oldOption[key], newOption[key]);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
oldOption[key] = value;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
})(oldOption, newOption);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function mllData(geoJson) {
|
|
49
|
+
var minLongitude = null, maxLongitude = null, minLatitude = null, maxLatitude = null;
|
|
50
|
+
var forPolygon = function (coordinates) {
|
|
51
|
+
for (var j = 0; j < coordinates.length; j++) {
|
|
52
|
+
for (var k = 0; k < coordinates[j].length; k++) {
|
|
53
|
+
var longitude = coordinates[j][k][0], latitude = coordinates[j][k][1];
|
|
54
|
+
if (minLongitude == void 0 || minLongitude > longitude)
|
|
55
|
+
minLongitude = longitude;
|
|
56
|
+
if (maxLongitude == void 0 || maxLongitude < longitude)
|
|
57
|
+
maxLongitude = longitude;
|
|
58
|
+
if (minLatitude == void 0 || minLatitude > latitude)
|
|
59
|
+
minLatitude = latitude;
|
|
60
|
+
if (maxLatitude == void 0 || maxLatitude < latitude)
|
|
61
|
+
maxLatitude = latitude;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
var features = geoJson.features;
|
|
66
|
+
for (var i = 0; i < features.length; i++) {
|
|
67
|
+
if (features[i].geometry.type == "Polygon") {
|
|
68
|
+
forPolygon(features[i].geometry.coordinates);
|
|
69
|
+
}
|
|
70
|
+
else if (features[i].geometry.type == "MultiPolygon") {
|
|
71
|
+
for (var j = 0; j < features[i].geometry.coordinates.length; j++) {
|
|
72
|
+
forPolygon(features[i].geometry.coordinates[j]);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return [minLongitude, maxLongitude, minLatitude, maxLatitude];
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function getBoundary () {
|
|
80
|
+
var geos = [];
|
|
81
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
82
|
+
geos[_i] = arguments[_i];
|
|
83
|
+
}
|
|
84
|
+
var minLongitude = null, maxLongitude = null, minLatitude = null, maxLatitude = null;
|
|
85
|
+
for (var _a = 0, geos_1 = geos; _a < geos_1.length; _a++) {
|
|
86
|
+
var geoJson = geos_1[_a];
|
|
87
|
+
var _b = mllData(geoJson), _minLongitude = _b[0], _maxLongitude = _b[1], _minLatitude = _b[2], _maxLatitude = _b[3];
|
|
88
|
+
if (minLongitude == void 0 || _minLongitude < minLongitude)
|
|
89
|
+
minLongitude = _minLongitude;
|
|
90
|
+
if (maxLongitude == void 0 || _maxLongitude > maxLongitude)
|
|
91
|
+
maxLongitude = _maxLongitude;
|
|
92
|
+
if (minLatitude == void 0 || _minLatitude < minLatitude)
|
|
93
|
+
minLatitude = _minLatitude;
|
|
94
|
+
if (maxLatitude == void 0 || _maxLatitude > maxLatitude)
|
|
95
|
+
maxLatitude = _maxLatitude;
|
|
96
|
+
}
|
|
97
|
+
return [minLongitude, maxLongitude, minLatitude, maxLatitude];
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
var Mercator = (function () {
|
|
101
|
+
function Mercator(scale, center) {
|
|
102
|
+
if (scale === void 0) { scale = 7; }
|
|
103
|
+
if (center === void 0) { center = [107, 36]; }
|
|
104
|
+
this.name = 'Mercator';
|
|
105
|
+
var perimeter = 100 * scale * Math.PI;
|
|
106
|
+
var help = perimeter / 180;
|
|
107
|
+
var cx = help * center[0];
|
|
108
|
+
var cy = -1 * help * center[1];
|
|
109
|
+
this.use = function (λ, φ) {
|
|
110
|
+
return [
|
|
111
|
+
(help * λ - cx) * 0.8,
|
|
112
|
+
-1 * help * φ - cy,
|
|
113
|
+
0
|
|
114
|
+
];
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
return Mercator;
|
|
118
|
+
}());
|
|
119
|
+
|
|
120
|
+
var rotateX = function (deg, x, y, z) {
|
|
121
|
+
var cos = Math.cos(deg), sin = Math.sin(deg);
|
|
122
|
+
return [x, y * cos - z * sin, y * sin + z * cos];
|
|
123
|
+
};
|
|
124
|
+
var rotateY = function (deg, x, y, z) {
|
|
125
|
+
var cos = Math.cos(deg), sin = Math.sin(deg);
|
|
126
|
+
return [z * sin + x * cos, y, z * cos - x * sin];
|
|
127
|
+
};
|
|
128
|
+
var rotateZ = function (deg, x, y, z) {
|
|
129
|
+
var cos = Math.cos(deg), sin = Math.sin(deg);
|
|
130
|
+
return [x * cos - y * sin, x * sin + y * cos, z];
|
|
131
|
+
};
|
|
132
|
+
var Eoap = (function () {
|
|
133
|
+
function Eoap(scale, center) {
|
|
134
|
+
if (scale === void 0) { scale = 7; }
|
|
135
|
+
if (center === void 0) { center = [107, 36]; }
|
|
136
|
+
this.name = 'Eoap';
|
|
137
|
+
this.__scale = scale;
|
|
138
|
+
this.__center = center;
|
|
139
|
+
}
|
|
140
|
+
Eoap.prototype.use = function (λ, φ) {
|
|
141
|
+
var p = rotateY((360 - φ) / 180 * Math.PI, 100 * this.__scale, 0, 0);
|
|
142
|
+
p = rotateZ(λ / 180 * Math.PI, p[0], p[1], p[2]);
|
|
143
|
+
p = rotateZ((90 - this.__center[0]) / 180 * Math.PI, p[0], p[1], p[2]);
|
|
144
|
+
p = rotateX((90 - this.__center[1]) / 180 * Math.PI, p[0], p[1], p[2]);
|
|
145
|
+
return [
|
|
146
|
+
-p[0],
|
|
147
|
+
p[1],
|
|
148
|
+
p[2]
|
|
149
|
+
];
|
|
150
|
+
};
|
|
151
|
+
return Eoap;
|
|
152
|
+
}());
|
|
153
|
+
|
|
154
|
+
var MapCoordinate = (function () {
|
|
155
|
+
function MapCoordinate(config) {
|
|
156
|
+
if (config === void 0) { config = {}; }
|
|
157
|
+
this.name = 'MapCoordinate';
|
|
158
|
+
this.__config = initOption(config, {
|
|
159
|
+
api: "Mercator",
|
|
160
|
+
width: 400,
|
|
161
|
+
height: 300,
|
|
162
|
+
left: 0,
|
|
163
|
+
top: 0
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
MapCoordinate.prototype.$$updateMap = function () {
|
|
167
|
+
var _a = this.__boundary, minLongitude = _a[0], maxLongitude = _a[1], minLatitude = _a[2], maxLatitude = _a[3];
|
|
168
|
+
if (this.__config.api == "Eoap") {
|
|
169
|
+
var xScale = this.__config.width * 0.836 / (maxLongitude - minLongitude);
|
|
170
|
+
var yScale = this.__config.height * 0.557 / (maxLatitude - minLatitude);
|
|
171
|
+
this.__map = new Eoap(xScale < yScale ? xScale : yScale, [
|
|
172
|
+
(minLongitude + maxLongitude) * 0.5 * 0.9778,
|
|
173
|
+
(minLatitude + maxLatitude) * 0.5 * 1.025
|
|
174
|
+
]);
|
|
175
|
+
}
|
|
176
|
+
else if (this.__config.api == "Mercator") {
|
|
177
|
+
var xScale = this.__config.width * 0.72 / (maxLongitude - minLongitude);
|
|
178
|
+
var yScale = this.__config.height * 0.575 / (maxLatitude - minLatitude);
|
|
179
|
+
this.__map = new Mercator(xScale < yScale ? xScale : yScale, [
|
|
180
|
+
(minLongitude + maxLongitude) * 0.5,
|
|
181
|
+
(minLatitude + maxLatitude) * 0.5
|
|
182
|
+
]);
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
throw new Error("Unexpected API types:" + this.__config.api);
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
MapCoordinate.prototype.setConfig = function (config) {
|
|
189
|
+
mergeOption(this.__config, config);
|
|
190
|
+
this.$$updateMap();
|
|
191
|
+
return this;
|
|
192
|
+
};
|
|
193
|
+
MapCoordinate.prototype.setGeos = function () {
|
|
194
|
+
var geos = [];
|
|
195
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
196
|
+
geos[_i] = arguments[_i];
|
|
197
|
+
}
|
|
198
|
+
this.__boundary = getBoundary.apply(void 0, geos);
|
|
199
|
+
this.$$updateMap();
|
|
200
|
+
return this;
|
|
201
|
+
};
|
|
202
|
+
MapCoordinate.prototype.use = function (λ, φ) {
|
|
203
|
+
if (this.__map) {
|
|
204
|
+
var dxyz = this.__map.use(λ, φ);
|
|
205
|
+
return [
|
|
206
|
+
this.__config.left + this.__config.width * 0.5 + dxyz[0],
|
|
207
|
+
this.__config.top + this.__config.height * 0.5 + dxyz[1],
|
|
208
|
+
];
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
throw new Error("Geographic data not set");
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
return MapCoordinate;
|
|
215
|
+
}());
|
|
216
|
+
|
|
217
|
+
export { MapCoordinate as default };
|