supper 2 yıl önce
ebeveyn
işleme
79619671e0
100 değiştirilmiş dosya ile 343714 ekleme ve 0 silme
  1. 22 0
      src/main/resources/static/.gitignore
  2. 14 0
      src/main/resources/static/bower_components/echarts/.bower.json
  3. 38 0
      src/main/resources/static/bower_components/echarts/.editorconfig
  4. 27 0
      src/main/resources/static/bower_components/echarts/.github/CONTRIBUTING.md
  5. 43 0
      src/main/resources/static/bower_components/echarts/.github/ISSUE_TEMPLATE.md
  6. 174 0
      src/main/resources/static/bower_components/echarts/.gitignore
  7. 70 0
      src/main/resources/static/bower_components/echarts/.jshintrc
  8. 9 0
      src/main/resources/static/bower_components/echarts/.npmignore
  9. 29 0
      src/main/resources/static/bower_components/echarts/LICENSE
  10. 131 0
      src/main/resources/static/bower_components/echarts/README.md
  11. BIN
      src/main/resources/static/bower_components/echarts/asset/logo.png
  12. 6 0
      src/main/resources/static/bower_components/echarts/benchmark/dep/bootstrap/bootstrap.min.css
  13. 7 0
      src/main/resources/static/bower_components/echarts/benchmark/dep/bootstrap/bootstrap.min.js
  14. 7 0
      src/main/resources/static/bower_components/echarts/benchmark/dep/filesaver/FileSaver.min.js
  15. 9814 0
      src/main/resources/static/bower_components/echarts/benchmark/dep/jquery/jquery-2.2.4.js
  16. 16591 0
      src/main/resources/static/bower_components/echarts/benchmark/dep/lodash/lodash.js
  17. 9 0
      src/main/resources/static/bower_components/echarts/benchmark/dep/vue/vue.min.js
  18. 14 0
      src/main/resources/static/bower_components/echarts/benchmark/gulpfile.js
  19. 105 0
      src/main/resources/static/bower_components/echarts/benchmark/index.html
  20. 102 0
      src/main/resources/static/bower_components/echarts/benchmark/src/app.js
  21. 55 0
      src/main/resources/static/bower_components/echarts/benchmark/src/testCase.js
  22. 93 0
      src/main/resources/static/bower_components/echarts/benchmark/src/testFactory.js
  23. 143 0
      src/main/resources/static/bower_components/echarts/benchmark/src/testManager.js
  24. 77 0
      src/main/resources/static/bower_components/echarts/build/.jshintrc
  25. 160 0
      src/main/resources/static/bower_components/echarts/build/amd2common.js
  26. 236 0
      src/main/resources/static/bower_components/echarts/build/build.js
  27. 154 0
      src/main/resources/static/bower_components/echarts/build/config.js
  28. 165 0
      src/main/resources/static/bower_components/echarts/build/mangleString.js
  29. 40 0
      src/main/resources/static/bower_components/echarts/build/optimize.js
  30. 72 0
      src/main/resources/static/bower_components/echarts/build/pre-publish.js
  31. 38 0
      src/main/resources/static/bower_components/echarts/build/rollup-plugin-ec-dev.js
  32. 60 0
      src/main/resources/static/bower_components/echarts/build/rollup-plugin-ec-lang.js
  33. 35 0
      src/main/resources/static/bower_components/echarts/build/rollup-plugin-ec-remove-dev.js
  34. 48836 0
      src/main/resources/static/bower_components/echarts/dist/echarts-en.common.js
  35. 1 0
      src/main/resources/static/bower_components/echarts/dist/echarts-en.common.min.js
  36. 74797 0
      src/main/resources/static/bower_components/echarts/dist/echarts-en.js
  37. 1 0
      src/main/resources/static/bower_components/echarts/dist/echarts-en.js.map
  38. 1 0
      src/main/resources/static/bower_components/echarts/dist/echarts-en.min.js
  39. 32286 0
      src/main/resources/static/bower_components/echarts/dist/echarts-en.simple.js
  40. 1 0
      src/main/resources/static/bower_components/echarts/dist/echarts-en.simple.min.js
  41. 48836 0
      src/main/resources/static/bower_components/echarts/dist/echarts.common.js
  42. 1 0
      src/main/resources/static/bower_components/echarts/dist/echarts.common.min.js
  43. 74797 0
      src/main/resources/static/bower_components/echarts/dist/echarts.js
  44. 1 0
      src/main/resources/static/bower_components/echarts/dist/echarts.js.map
  45. 1 0
      src/main/resources/static/bower_components/echarts/dist/echarts.min.js
  46. 32286 0
      src/main/resources/static/bower_components/echarts/dist/echarts.simple.js
  47. 1 0
      src/main/resources/static/bower_components/echarts/dist/echarts.simple.min.js
  48. 342 0
      src/main/resources/static/bower_components/echarts/dist/extension/bmap.js
  49. 1 0
      src/main/resources/static/bower_components/echarts/dist/extension/bmap.js.map
  50. 1 0
      src/main/resources/static/bower_components/echarts/dist/extension/bmap.min.js
  51. 758 0
      src/main/resources/static/bower_components/echarts/dist/extension/dataTool.js
  52. 1 0
      src/main/resources/static/bower_components/echarts/dist/extension/dataTool.js.map
  53. 1 0
      src/main/resources/static/bower_components/echarts/dist/extension/dataTool.min.js
  54. 53 0
      src/main/resources/static/bower_components/echarts/echarts.all.js
  55. 2 0
      src/main/resources/static/bower_components/echarts/echarts.blank.js
  56. 23 0
      src/main/resources/static/bower_components/echarts/echarts.common.js
  57. 6 0
      src/main/resources/static/bower_components/echarts/echarts.simple.js
  58. 199 0
      src/main/resources/static/bower_components/echarts/extension-src/bmap/BMapCoordSys.js
  59. 35 0
      src/main/resources/static/bower_components/echarts/extension-src/bmap/BMapModel.js
  60. 86 0
      src/main/resources/static/bower_components/echarts/extension-src/bmap/BMapView.js
  61. 26 0
      src/main/resources/static/bower_components/echarts/extension-src/bmap/bmap.js
  62. 197 0
      src/main/resources/static/bower_components/echarts/extension-src/dataTool/gexf.js
  63. 19 0
      src/main/resources/static/bower_components/echarts/extension-src/dataTool/index.js
  64. 73 0
      src/main/resources/static/bower_components/echarts/extension-src/dataTool/prepareBoxplotData.js
  65. 41 0
      src/main/resources/static/bower_components/echarts/extension-src/dataTool/quantile.js
  66. 206 0
      src/main/resources/static/bower_components/echarts/extension/bmap/BMapCoordSys.js
  67. 29 0
      src/main/resources/static/bower_components/echarts/extension/bmap/BMapModel.js
  68. 83 0
      src/main/resources/static/bower_components/echarts/extension/bmap/BMapView.js
  69. 72 0
      src/main/resources/static/bower_components/echarts/extension/bmap/README.md
  70. 26 0
      src/main/resources/static/bower_components/echarts/extension/bmap/bmap.js
  71. 187 0
      src/main/resources/static/bower_components/echarts/extension/dataTool/gexf.js
  72. 22 0
      src/main/resources/static/bower_components/echarts/extension/dataTool/index.js
  73. 70 0
      src/main/resources/static/bower_components/echarts/extension/dataTool/prepareBoxplotData.js
  74. 43 0
      src/main/resources/static/bower_components/echarts/extension/dataTool/quantile.js
  75. 1 0
      src/main/resources/static/bower_components/echarts/extension/echarts.js
  76. 17 0
      src/main/resources/static/bower_components/echarts/extension/webpack.config.js
  77. 51 0
      src/main/resources/static/bower_components/echarts/index.common.js
  78. 101 0
      src/main/resources/static/bower_components/echarts/index.js
  79. 16 0
      src/main/resources/static/bower_components/echarts/index.simple.js
  80. 27 0
      src/main/resources/static/bower_components/echarts/map/js/china-contour.js
  81. 27 0
      src/main/resources/static/bower_components/echarts/map/js/china.js
  82. 27 0
      src/main/resources/static/bower_components/echarts/map/js/province/anhui.js
  83. 27 0
      src/main/resources/static/bower_components/echarts/map/js/province/aomen.js
  84. 27 0
      src/main/resources/static/bower_components/echarts/map/js/province/beijing.js
  85. 27 0
      src/main/resources/static/bower_components/echarts/map/js/province/chongqing.js
  86. 27 0
      src/main/resources/static/bower_components/echarts/map/js/province/fujian.js
  87. 27 0
      src/main/resources/static/bower_components/echarts/map/js/province/gansu.js
  88. 27 0
      src/main/resources/static/bower_components/echarts/map/js/province/guangdong.js
  89. 27 0
      src/main/resources/static/bower_components/echarts/map/js/province/guangxi.js
  90. 27 0
      src/main/resources/static/bower_components/echarts/map/js/province/guizhou.js
  91. 27 0
      src/main/resources/static/bower_components/echarts/map/js/province/hainan.js
  92. 27 0
      src/main/resources/static/bower_components/echarts/map/js/province/hebei.js
  93. 27 0
      src/main/resources/static/bower_components/echarts/map/js/province/heilongjiang.js
  94. 27 0
      src/main/resources/static/bower_components/echarts/map/js/province/henan.js
  95. 27 0
      src/main/resources/static/bower_components/echarts/map/js/province/hubei.js
  96. 27 0
      src/main/resources/static/bower_components/echarts/map/js/province/hunan.js
  97. 27 0
      src/main/resources/static/bower_components/echarts/map/js/province/jiangsu.js
  98. 27 0
      src/main/resources/static/bower_components/echarts/map/js/province/jiangxi.js
  99. 27 0
      src/main/resources/static/bower_components/echarts/map/js/province/jilin.js
  100. 0 0
      src/main/resources/static/bower_components/echarts/map/js/province/liaoning.js

+ 22 - 0
src/main/resources/static/.gitignore

@@ -0,0 +1,22 @@
1
+.DS_Store
2
+node_modules
3
+/dist
4
+
5
+# local env files
6
+.env.local
7
+.env.*.local
8
+
9
+# Log files
10
+npm-debug.log*
11
+yarn-debug.log*
12
+yarn-error.log*
13
+
14
+# Editor directories and files
15
+.idea
16
+.vscode
17
+*.suo
18
+*.ntvs*
19
+*.njsproj
20
+*.sln
21
+*.sw?
22
+云南智能化粮库系统使用手册.pdf

+ 14 - 0
src/main/resources/static/bower_components/echarts/.bower.json

@@ -0,0 +1,14 @@
1
+{
2
+  "name": "echarts",
3
+  "homepage": "https://github.com/ecomfe/echarts",
4
+  "version": "3.8.5",
5
+  "_release": "3.8.5",
6
+  "_resolution": {
7
+    "type": "version",
8
+    "tag": "3.8.5",
9
+    "commit": "eb95d20f527c5e91f98579647c6343b07b4f8c6e"
10
+  },
11
+  "_source": "https://github.com/ecomfe/echarts.git",
12
+  "_target": "~3.8.4",
13
+  "_originalSource": "echarts"
14
+}

+ 38 - 0
src/main/resources/static/bower_components/echarts/.editorconfig

@@ -0,0 +1,38 @@
1
+root = true
2
+
3
+[*]
4
+end_of_line = lf
5
+charset = utf-8
6
+trim_trailing_whitespace = true
7
+insert_final_newline = true
8
+
9
+[**.js]
10
+indent_style = space
11
+indent_size = 4
12
+
13
+[**.css]
14
+indent_style = space
15
+indent_size = 4
16
+
17
+[**.less]
18
+indent_style = space
19
+indent_size = 4
20
+
21
+[**.styl]
22
+indent_style = space
23
+indent_size = 4
24
+
25
+[**.html]
26
+indent_style = space
27
+indent_size = 4
28
+
29
+[**.tpl]
30
+indent_style = space
31
+indent_size = 4
32
+
33
+[**.json]
34
+indent_style = space
35
+indent_size = 4
36
+
37
+[*.md]
38
+trim_trailing_whitespace = false

+ 27 - 0
src/main/resources/static/bower_components/echarts/.github/CONTRIBUTING.md

@@ -0,0 +1,27 @@
1
+如果你想帮助 **ECharts** 的话,请首先阅读指导原则:
2
+
3
+- 如果你希望提 bug:
4
+
5
+  - 清楚地描述问题,注意:**别人是否能通过你的描述理解这是什么问题**。
6
+  - 说明版本(ECharts 版本,浏览器版本,设备、操作系统版本等)
7
+  - 最好提供完整的ECharts option,截图或线上实例(可以使用JSFiddle/JSBin/Codepen)。
8
+
9
+- 如果你想问问题:
10
+
11
+  - 首先是否在这些文档中寻找过问题的答案:[option文档](http://echarts.baidu.com/option.html),[API文档](http://echarts.baidu.com/api.html),[教程](http://echarts.baidu.com/tutorial.html)
12
+  - 简单的问题,可以在QQ群中求助(群号:465958031)
13
+
14
+- 如何取得能运行的 `ECharts option` 
15
+
16
+  一个参考方式:
17
+  在你的程序的 
18
+  ```javascript 
19
+  chart.setOption(option); 
20
+  ``` 
21
+  前加入这句话 
22
+  ```javascript 
23
+  console.log(JSON.stringify(option, null, 4));
24
+  ```
25
+  
26
+  然后打开浏览器的调试工具(如 `Chrome Deverloper Tool`)的 `控制台(console)`,可以得到option输出。
27
+

+ 43 - 0
src/main/resources/static/bower_components/echarts/.github/ISSUE_TEMPLATE.md

@@ -0,0 +1,43 @@
1
+<!--
2
+为了方便我们能够复现和修复 bug,请遵从下面的规范描述您的问题。
3
+-->
4
+
5
+
6
+### One-line summary [问题简述]
7
+
8
+
9
+
10
+
11
+
12
+### Version & Environment [版本及环境]
13
++ ECharts version [ECharts 版本]:
14
++ Browser version [浏览器类型和版本]:
15
++ OS Version [操作系统类型和版本]:
16
+
17
+
18
+
19
+
20
+
21
+### Expected behaviour [期望结果]
22
+
23
+
24
+
25
+
26
+
27
+### ECharts option [ECharts配置项]
28
+<!-- Copy and paste your 'echarts option' here. -->
29
+<!-- [下方贴你的option,注意不要删掉下方 ```javascript 和 尾部的 ``` 字样。最好是我们能够直接运行的 option。如何得到能运行的 option 参见上方的 guidelines for contributing] -->
30
+```javascript
31
+option = {
32
+
33
+}
34
+
35
+```
36
+
37
+
38
+
39
+
40
+### Other comments [其他信息]
41
+<!-- For example: Screenshot or Online demo -->
42
+<!-- [例如,截图或线上实例 (JSFiddle/JSBin/Codepen)] -->
43
+

+ 174 - 0
src/main/resources/static/bower_components/echarts/.gitignore

@@ -0,0 +1,174 @@
1
+#################
2
+## Eclipse
3
+#################
4
+
5
+*.pydevproject
6
+.project
7
+.metadata
8
+bin/
9
+tmp/
10
+*.tmp
11
+*.bak
12
+*.swp
13
+*~.nib
14
+.svn
15
+local.properties
16
+.classpath
17
+.settings/
18
+.loadpath
19
+
20
+# External tool builders
21
+.externalToolBuilders/
22
+
23
+# Locally stored "Eclipse launch configurations"
24
+*.launch
25
+
26
+# CDT-specific
27
+.cproject
28
+
29
+# PDT-specific
30
+.buildpath
31
+
32
+
33
+#################
34
+## Visual Studio
35
+#################
36
+
37
+## Ignore Visual Studio temporary files, build results, and
38
+## files generated by popular Visual Studio add-ons.
39
+
40
+# User-specific files
41
+*.suo
42
+*.user
43
+*.sln.docstates
44
+
45
+# Build results
46
+[Dd]ebug/
47
+[Rr]elease/
48
+*_i.c
49
+*_p.c
50
+*.ilk
51
+*.meta
52
+*.obj
53
+*.pch
54
+*.pdb
55
+*.pgc
56
+*.pgd
57
+*.rsp
58
+*.sbr
59
+*.tlb
60
+*.tli
61
+*.tlh
62
+*.tmp
63
+*.vspscc
64
+.builds
65
+*.dotCover
66
+
67
+## TODO: If you have NuGet Package Restore enabled, uncomment this
68
+#packages/
69
+
70
+# Visual C++ cache files
71
+ipch/
72
+*.aps
73
+*.ncb
74
+*.opensdf
75
+*.sdf
76
+
77
+# Visual Studio profiler
78
+*.psess
79
+*.vsp
80
+
81
+# ReSharper is a .NET coding add-in
82
+_ReSharper*
83
+
84
+# Installshield output folder
85
+[Ee]xpress
86
+
87
+# DocProject is a documentation generator add-in
88
+DocProject/buildhelp/
89
+DocProject/Help/*.HxT
90
+DocProject/Help/*.HxC
91
+DocProject/Help/*.hhc
92
+DocProject/Help/*.hhk
93
+DocProject/Help/*.hhp
94
+DocProject/Help/Html2
95
+DocProject/Help/html
96
+
97
+# Click-Once directory
98
+publish
99
+
100
+# Others
101
+[Bb]in
102
+[Oo]bj
103
+sql
104
+TestResults
105
+*.Cache
106
+ClientBin
107
+stylecop.*
108
+~$*
109
+*.dbmdl
110
+Generated_Code #added for RIA/Silverlight projects
111
+
112
+# Backup & report files from converting an old project file to a newer
113
+# Visual Studio version. Backup files are not needed, because we have git ;-)
114
+_UpgradeReport_Files/
115
+Backup*/
116
+UpgradeLog*.XML
117
+
118
+
119
+
120
+############
121
+## Windows
122
+############
123
+
124
+# Windows image file caches
125
+Thumbs.db
126
+
127
+# Folder config file
128
+Desktop.ini
129
+
130
+
131
+#############
132
+## Python
133
+#############
134
+
135
+*.py[co]
136
+
137
+# Packages
138
+*.egg
139
+*.egg-info
140
+# dist
141
+eggs
142
+parts
143
+bin
144
+var
145
+sdist
146
+develop-eggs
147
+.installed.cfg
148
+
149
+# Installer logs
150
+pip-log.txt
151
+
152
+# Unit test / coverage reports
153
+.coverage
154
+.tox
155
+
156
+#Translations
157
+*.mo
158
+
159
+#Mr Developer
160
+.mr.developer.cfg
161
+
162
+# Mac crap
163
+.DS_Store
164
+
165
+node_modules
166
+
167
+map/tool
168
+map/raw
169
+theme/thumb
170
+/lib
171
+todo
172
+**/*.log
173
+*.sublime-workspace
174
+*.sublime-project

+ 70 - 0
src/main/resources/static/bower_components/echarts/.jshintrc

@@ -0,0 +1,70 @@
1
+{
2
+    "bitwise": false,
3
+    "camelcase": true,
4
+    "curly": true,
5
+    "eqeqeq": false,
6
+    "forin": false,
7
+    "immed": true,
8
+    "latedef": false,
9
+    "newcap": true,
10
+    "noarg": false,
11
+    "noempty": true,
12
+    "nonew": true,
13
+    "plusplus": false,
14
+    "quotmark": "single",
15
+    "regexp": false,
16
+    "undef": true,
17
+    "unused": "vars",
18
+    "strict": false,
19
+    "trailing": false,
20
+    "maxparams": 20,
21
+    "maxdepth": 6,
22
+    "maxlen": 200,
23
+
24
+    "asi": false,
25
+    "boss": false,
26
+    "debug": false,
27
+    "eqnull": true,
28
+    "esversion": 6,
29
+    "module": true,
30
+    "evil": true,
31
+    "expr": true,
32
+    "funcscope": false,
33
+    "globalstrict": false,
34
+    "iterator": false,
35
+    "lastsemic": false,
36
+    "laxbreak": true,
37
+    "laxcomma": false,
38
+    "loopfunc": false,
39
+    "multistr": false,
40
+    "onecase": false,
41
+    "proto": false,
42
+    "regexdash": false,
43
+    "scripturl": false,
44
+    "smarttabs": false,
45
+    "shadow": true,
46
+    "sub": true,
47
+    "supernew": false,
48
+    "validthis": true,
49
+
50
+    "browser": true,
51
+    "couch": false,
52
+    "devel": true,
53
+    "dojo": false,
54
+    "jquery": true,
55
+    "mootools": false,
56
+    "node": false,
57
+    "nonstandard": false,
58
+    "prototypejs": false,
59
+    "rhino": false,
60
+    "wsh": false,
61
+
62
+    "nomen": false,
63
+    "onevar": false,
64
+    "passfail": false,
65
+    "white": false,
66
+
67
+    "predef": [
68
+        "global"
69
+    ]
70
+}

+ 9 - 0
src/main/resources/static/bower_components/echarts/.npmignore

@@ -0,0 +1,9 @@
1
+/test
2
+/map/tool
3
+/map/raw
4
+/theme/tool
5
+/theme/thumb
6
+todo
7
+npm-debug.log
8
+/benchmark
9
+echarts.d.ts

+ 29 - 0
src/main/resources/static/bower_components/echarts/LICENSE

@@ -0,0 +1,29 @@
1
+BSD 3-Clause License
2
+
3
+Copyright (c) 2017, Baidu Inc.
4
+All rights reserved.
5
+
6
+Redistribution and use in source and binary forms, with or without
7
+modification, are permitted provided that the following conditions are met:
8
+
9
+* Redistributions of source code must retain the above copyright notice, this
10
+  list of conditions and the following disclaimer.
11
+
12
+* Redistributions in binary form must reproduce the above copyright notice,
13
+  this list of conditions and the following disclaimer in the documentation
14
+  and/or other materials provided with the distribution.
15
+
16
+* Neither the name of the copyright holder nor the names of its
17
+  contributors may be used to endorse or promote products derived from
18
+  this software without specific prior written permission.
19
+
20
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+ 131 - 0
src/main/resources/static/bower_components/echarts/README.md

@@ -0,0 +1,131 @@
1
+# ECharts
2
+
3
+<a href="http://echarts.baidu.com">
4
+    <img style="vertical-align: top;" src="./asset/logo.png?raw=true" alt="logo" height="50px">
5
+</a>
6
+
7
+ECharts is a free, powerful charting and visualization library offering an easy way of adding intuitive, interactive, and highly customizable charts to your commercial products. It is written in pure JavaScript and based on <a href="https://github.com/ecomfe/zrender">zrender</a>, which is a whole new lightweight canvas library.
8
+
9
+**[中文官网](http://echarts.baidu.com)** | **[HOMEPAGE EN](http://ecomfe.github.io/echarts-doc/public/en/index.html)**
10
+
11
+## Get ECharts
12
+
13
++ Download on [echarts.baidu.com](http://echarts.baidu.com/download.html)
14
+
15
++ `npm install echarts --save`
16
+
17
+## Get ECharts GL
18
+
19
+ECharts-GL is an extension pack of echarts, which providing 3D plots, globe visualization and WebGL acceleration.
20
+
21
++ Get from [https://github.com/ecomfe/echarts-gl](https://github.com/ecomfe/echarts-gl)
22
+
23
++ `npm install echarts-gl --save`
24
+
25
+## Docs
26
+
27
++ [Tutorial](http://echarts.baidu.com/tutorial.html)
28
+    + [中文](http://echarts.baidu.com/tutorial.html)
29
+    + [English](http://ecomfe.github.io/echarts-doc/public/en/tutorial.html)
30
+
31
++ [API](http://echarts.baidu.com/api.html)
32
+    + [中文](http://echarts.baidu.com/api.html)
33
+    + [English](http://ecomfe.github.io/echarts-doc/public/en/api.html)
34
+
35
++ [Option Manual](http://echarts.baidu.com/option.html)
36
+    + [中文](http://echarts.baidu.com/option.html)
37
+    + [English](http://ecomfe.github.io/echarts-doc/public/en/option.html)
38
+
39
+## Resources
40
+
41
+
42
+### Awesome ECharts
43
+
44
+[https://github.com/ecomfe/awesome-echarts](https://github.com/ecomfe/awesome-echarts)
45
+
46
+### Extensions
47
+
48
++ [百度地图扩展](https://github.com/ecomfe/echarts/tree/master/extension/bmap)
49
+
50
++ [水球图 liquidfill](https://github.com/ecomfe/echarts-liquidfill)
51
+
52
++ [字符云 wordcloud](https://github.com/ecomfe/echarts-wordcloud)
53
+
54
++ [Graph Modularity](https://github.com/ecomfe/echarts-graph-modularity) Graph modularity extension for community detection
55
+
56
++ [leaflet-echarts](https://github.com/wandergis/leaflet-echarts3) by wandergis
57
++ [arcgis-echarts](https://github.com/wandergis/arcgis-echarts3) by wandergis
58
+
59
+#### AngularJS Binding
60
+
61
++ [angular-echarts](https://github.com/wangshijun/angular-echarts) by wangshijun
62
++ [echarts-ng](https://github.com/bornkiller/echarts-ng) by bornkiller
63
++ [ng-echarts](https://github.com/liekkas/ng-echarts) by liekkas
64
+
65
+#### Vue Component
66
+
67
++ [vue-echarts](https://github.com/Justineo/vue-echarts) by Justineo
68
++ [vue-echarts](https://github.com/panteng/vue-echarts) by panteng
69
++ [vue-echarts-v3](https://github.com/xlsdg/vue-echarts-v3) by xlsdg
70
+
71
+#### React Component
72
+
73
++ [echarts-for-react](https://github.com/hustcc/echarts-for-react) by hustcc
74
++ [react-echarts](https://github.com/somonus/react-echarts) by somonus
75
++ [re-echarts](https://github.com/liekkas/re-echarts) by liekkas
76
++ [react-echarts-v3](https://github.com/xlsdg/react-echarts-v3) by xlsdg
77
++ [d2recharts](https://github.com/leungwensen/d2recharts) by leungwensen
78
+
79
+#### React Native Component
80
+
81
++ [react-native-echarts](https://github.com/somonus/react-native-echarts) by somonus
82
+
83
+### Other Languages
84
+#### Python
85
+
86
++ [echarts-python](https://github.com/yufeiminds/echarts-python) by yufeiminds
87
++ [krisk](https://github.com/napjon/krisk) by napjon
88
++ [pyecharts](https://github.com/chenjiandongx/pyecharts) by chenjiandong
89
+
90
+#### R
91
+
92
++ [recharts](https://github.com/taiyun/recharts) by taiyun
93
++ [recharts](https://github.com/yihui/recharts) by yihui
94
++ [ECharts2Shiny](https://github.com/XD-DENG/ECharts2Shiny) by XD-DENG
95
+
96
+#### Julia
97
+
98
++ [ECharts.jl](https://github.com/randyzwitch/ECharts.jl) by randyzwitch
99
+
100
+#### PureScript
101
+
102
++ [purescript-echarts](https://github.com/slamdata/purescript-echarts/)
103
+
104
+#### iOS
105
+
106
++ [iOS-Echarts](https://github.com/Pluto-Y/iOS-Echarts) by Pluto-Y
107
+
108
+#### Java
109
+
110
++ [ECharts-Java](http://www.oschina.net/p/echarts-java) by Liuzh_533
111
+
112
+#### .NET
113
+
114
++ [EChartsSDK](https://github.com/idoku/EChartsSDK) by idoku
115
+
116
+#### PHP
117
+
118
++ [Echarts-PHP](https://github.com/hisune/Echarts-PHP) by hisune
119
+
120
+#### Node
121
+
122
++ [Node-Echarts](https://github.com/suxiaoxin/node-echarts) by suxiaoxin
123
+
124
+## Build
125
+
126
+Check this tutorial [Create Custom Build of ECharts](https://ecomfe.github.io/echarts-doc/public/en/tutorial.html#Create%20Custom%20Build%20of%20ECharts)
127
+ please.
128
+
129
+## License
130
+
131
+ECharts is available under the BSD license.

BIN
src/main/resources/static/bower_components/echarts/asset/logo.png


Dosya farkı çok büyük olduğundan ihmal edildi
+ 6 - 0
src/main/resources/static/bower_components/echarts/benchmark/dep/bootstrap/bootstrap.min.css


Dosya farkı çok büyük olduğundan ihmal edildi
+ 7 - 0
src/main/resources/static/bower_components/echarts/benchmark/dep/bootstrap/bootstrap.min.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 7 - 0
src/main/resources/static/bower_components/echarts/benchmark/dep/filesaver/FileSaver.min.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 9814 - 0
src/main/resources/static/bower_components/echarts/benchmark/dep/jquery/jquery-2.2.4.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 16591 - 0
src/main/resources/static/bower_components/echarts/benchmark/dep/lodash/lodash.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 9 - 0
src/main/resources/static/bower_components/echarts/benchmark/dep/vue/vue.min.js


+ 14 - 0
src/main/resources/static/bower_components/echarts/benchmark/gulpfile.js

@@ -0,0 +1,14 @@
1
+var gulp = require('gulp');
2
+var watch = require('gulp-watch');
3
+var browserSync = require('browser-sync').create();
4
+
5
+gulp.task('serve', function() {
6
+    browserSync.init({
7
+        server: '../',
8
+        startPath: 'benchmark'
9
+    });
10
+
11
+    gulp.watch(['*.html', 'src/*.js']).on('change', browserSync.reload);
12
+});
13
+
14
+gulp.task('default', ['serve']);

+ 105 - 0
src/main/resources/static/bower_components/echarts/benchmark/index.html

@@ -0,0 +1,105 @@
1
+<!DOCTYPE html>
2
+<html>
3
+<head>
4
+    <title>ECharts Stress Test</title>
5
+
6
+    <meta charset="utf-8">
7
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
8
+    <meta name="viewport" content="width=device-width, initial-scale=1">
9
+
10
+    <link rel="stylesheet" href="./dep/bootstrap/bootstrap.min.css">
11
+    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
12
+    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
13
+    <!--[if lt IE 9]>
14
+      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
15
+      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
16
+    <![endif]-->
17
+
18
+    <style type="text/css">
19
+        .btn {
20
+            margin: 10px 10px 10px 0;
21
+        }
22
+
23
+        #report {
24
+            width: 100%;
25
+            height: 400px;
26
+        }
27
+
28
+        textarea {
29
+            height: 150px;
30
+        }
31
+
32
+        .progress-bar {
33
+            transition-duration: 0s;
34
+        }
35
+    </style>
36
+</head>
37
+<body id="app">
38
+    <div class="container">
39
+        <h1>ECharts Stress Test</h1>
40
+
41
+        <div>
42
+            <button class="btn" v-bind:class="{'btn-primary': !hasRun, 'btn-default': hasRun}" v-on:click="run">
43
+                Start
44
+            </button>
45
+            <button class="btn btn-primary" data-target="#export-modal" data-toggle="modal" v-if="hasRun">
46
+                Export
47
+            </button>
48
+            <span v-if="hasRun || isRunning">Elapsed time: {{ elapsedTime / 1000 }} seconds</span>
49
+        </div>
50
+
51
+        <div class="progress" v-if="isRunning">
52
+            <div class="progress-bar" role="progressbar" aria-valuenow="{{ progress }}" aria-valuemin="0" aria-valuemax="100" style="width: {{ progress }}%;">{{ progress }}%</div>
53
+        </div>
54
+
55
+        <div id="report" v-if="hasRun"></div>
56
+
57
+        <table id="test-table" class="table table-striped" v-if="hasRun">
58
+            <tr>
59
+                <th>Data Amount</th>
60
+                <th v-for="name in caseNames">{{ name }}</th>
61
+            </tr>
62
+            <tr v-for="(aid, amount) in amounts">
63
+                <td>{{ amount }}</td>
64
+                <th v-for="(cid, name) in caseNames">{{ times[aid][cid] }}</th>
65
+            </tr>
66
+        </table>
67
+    </div>
68
+
69
+    <div class="modal fade" id="export-modal" tabindex="-1" role="dialog">
70
+        <div class="modal-dialog">
71
+            <div class="modal-content">
72
+                <div class="modal-header">
73
+                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
74
+                    <h4 class="modal-title">Test Result</h4>
75
+                </div>
76
+                <div class="modal-body">
77
+                    <div>
78
+                        <button class="btn btn-primary" v-on:click="download">Download</button>
79
+                    </div>
80
+                    <textarea v-if="hasRun" class="form-control">{{ result }}</textarea>
81
+                </div>
82
+                <div class="modal-footer">
83
+                    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
84
+                </div>
85
+            </div>
86
+        </div>
87
+    </div><!-- end of modal -->
88
+
89
+    <script src="./dep/jquery/jquery-2.2.4.js"></script>
90
+    <script src="./dep/bootstrap/bootstrap.min.js"></script>
91
+    <script src="./dep/vue/vue.min.js"></script>
92
+    <script src="./dep/lodash/lodash.js"></script>
93
+    <script src="./dep/filesaver/FileSaver.min.js"></script>
94
+
95
+    <script type="text/javascript" src="../dist/echarts.js"></script>
96
+
97
+    <script src="../test/esl.js"></script>
98
+    <script>
99
+    require.config({
100
+        baseUrl: './src'
101
+    });
102
+    require(['app']);
103
+    </script>
104
+</body>
105
+</html>

+ 102 - 0
src/main/resources/static/bower_components/echarts/benchmark/src/app.js

@@ -0,0 +1,102 @@
1
+/**
2
+ * @file benchmark application instance
3
+ * @author Wenli Zhang
4
+ */
5
+
6
+define(function (require) {
7
+
8
+    var TestManager = require('./testManager');
9
+
10
+    var vm = new Vue({
11
+        el: '#app',
12
+
13
+        data: {
14
+            caseNames: ['line sampling'],
15
+            amounts: (function () {
16
+                var arr = [];
17
+                for (var i = 1000000; i > 0; i -= 10000) {
18
+                    arr.push(i);
19
+                }
20
+                return arr;
21
+            })(),
22
+            times: [],
23
+            result: '',
24
+
25
+            hasRun: false,
26
+            isRunning: false,
27
+            elapsedTime: 0,
28
+            progress: 0
29
+        },
30
+
31
+        methods: {
32
+            run: run,
33
+            download: download
34
+        }
35
+    });
36
+
37
+    var manager = new TestManager(vm.amounts, vm.caseNames);
38
+
39
+    function run() {
40
+        var results = [];
41
+        var start = new Date();
42
+
43
+        var updateUI = function () {
44
+            var progress = Math.ceil(manager.getProgress() * 100);
45
+            vm.$set('progress', progress);
46
+            var end = new Date();
47
+            vm.$set('elapsedTime', end - start);
48
+
49
+            for (var i = 0; i < results.length; ++i) {
50
+                var test = results[i];
51
+                if (!vm.times[test.amountId]) {
52
+                    vm.$set('times[' + test.amountId + ']', []);
53
+                }
54
+                vm.$set('times[' + test.amountId + '][' + test.caseId
55
+                    + ']', test.time);
56
+            }
57
+            results = [];
58
+        };
59
+
60
+        vm.$set('hasRun', false);
61
+        vm.$set('isRunning', true);
62
+        vm.$set('progress', 0);
63
+        manager.init();
64
+
65
+        for (var aid = 0; aid < vm.amounts.length; ++aid) {
66
+            for (var cid = 0; cid < vm.caseNames.length; ++cid) {
67
+                // run a test case in each loop
68
+                (function (aid, cid) {
69
+                    setTimeout(function () {
70
+                        var test = manager.run(cid, aid);
71
+                        results.push(test);
72
+
73
+                        if (aid === vm.amounts.length - 1
74
+                            && cid === vm.caseNames.length - 1) {
75
+                            // last test case
76
+                            vm.$set('hasRun', true);
77
+                            vm.$set('isRunning', false);
78
+                            vm.$set('result', manager.exportResult());
79
+                            updateUI();
80
+                        }
81
+                    }, 0);
82
+                })(aid, cid);
83
+
84
+                // log results
85
+                setTimeout(updateUI, 0);
86
+            }
87
+        }
88
+
89
+        setTimeout(function () {
90
+            manager.drawReport(document.getElementById('report'));
91
+        }, 0);
92
+    }
93
+
94
+    function download() {
95
+        // save to file
96
+        var blob = new Blob([vm.result], {
97
+            type: 'text/json; charset=urf-8'
98
+        });
99
+        saveAs(blob, 'result.json');
100
+    }
101
+
102
+});

+ 55 - 0
src/main/resources/static/bower_components/echarts/benchmark/src/testCase.js

@@ -0,0 +1,55 @@
1
+/**
2
+ * @file TestCase is the class for each test case of EChart
3
+ * @author Wenli Zhang
4
+ */
5
+
6
+define(function (require) {
7
+
8
+    /**
9
+     * set up test case
10
+     *
11
+     * @param {string} name   name of test case
12
+     * @param {Object} option ECharts option
13
+     */
14
+    function TestCase(name, option) {
15
+
16
+        this.name = name;
17
+        this.option = option;
18
+
19
+    }
20
+
21
+    /**
22
+     * run test case and return elapsed time
23
+     *
24
+     * @param  {iterations} iterations number of iterations
25
+     * @return {number}                elapsed time
26
+     */
27
+    TestCase.prototype.runTime = function (iterations) {
28
+        // run for multi times
29
+        var total = 0;
30
+        for (var i = 0; i < iterations; ++i) {
31
+            total += runTime(this.option);
32
+        }
33
+        return total / iterations;
34
+    };
35
+
36
+    function runTime(option) {
37
+        var container = document.createElement('div');
38
+        container.style.width = '800px';
39
+        container.style.height = '600px';
40
+
41
+        var start = new Date();
42
+
43
+        var chart = echarts.init(container);
44
+        chart.setOption(option);
45
+
46
+        var end = new Date();
47
+
48
+        chart.dispose();
49
+
50
+        return end - start;
51
+    }
52
+
53
+    return TestCase;
54
+
55
+});

+ 93 - 0
src/main/resources/static/bower_components/echarts/benchmark/src/testFactory.js

@@ -0,0 +1,93 @@
1
+/**
2
+ * @file TestFactory creates test cases based on names and options
3
+ * @author Wenli Zhang
4
+ */
5
+
6
+define(function (require) {
7
+
8
+    var TestCase = require('./testCase');
9
+
10
+    var TestFactory = {};
11
+
12
+    /**
13
+     * create test case, return instance of TestCase
14
+     *
15
+     * @param  {string}   name   name of test case
16
+     * @param  {number}   amount data amount
17
+     * @return {TestCase}        test case instance
18
+     */
19
+    TestFactory.create = function (name, amount) {
20
+        var option = null;
21
+        switch (name) {
22
+            case 'line':
23
+            case 'line sampling':
24
+            case 'bar':
25
+            case 'scatter':
26
+                option = {
27
+                    series: {
28
+                        data: data2D(amount),
29
+                        type: name
30
+                    },
31
+                    xAxis: {
32
+                        type: 'value'
33
+                    },
34
+                    yAxis: {
35
+                        type: 'value'
36
+                    }
37
+                };
38
+                break;
39
+
40
+            case 'pie':
41
+                option = {
42
+                    series: {
43
+                        data: data1D(amount),
44
+                        type: 'pie'
45
+                    }
46
+                };
47
+                break;
48
+
49
+            default:
50
+                console.error('Test name ' + name + ' not found!');
51
+                return null;
52
+        }
53
+
54
+        if (name === 'line sampling') {
55
+            option.series.sampling = 'max';
56
+            option.series.type = 'line';
57
+        }
58
+
59
+        option.animation = false;
60
+        return new TestCase(name, option);
61
+    };
62
+
63
+    /**
64
+     * generate random 1d data
65
+     *
66
+     * @param  {number}   amount data amount
67
+     * @return {number[]}        generated random data
68
+     */
69
+    function data1D(amount) {
70
+        var result = [];
71
+        for (var i = 0; i < amount; ++i) {
72
+            result.push(Math.random());
73
+        }
74
+        return result;
75
+    }
76
+
77
+    /**
78
+     * generate random 2d data
79
+     *
80
+     * @param  {number}   amount data amount
81
+     * @return {number[]}        generated random data
82
+     */
83
+    function data2D(amount) {
84
+        var result = [];
85
+        for (var i = 0; i < amount; ++i) {
86
+            result.push([Math.random(), Math.random()]);
87
+        }
88
+        return result;
89
+    }
90
+
91
+    return TestFactory;
92
+
93
+});

+ 143 - 0
src/main/resources/static/bower_components/echarts/benchmark/src/testManager.js

@@ -0,0 +1,143 @@
1
+/**
2
+ * @file TestManager loads and runs test cases
3
+ * @author Wenli Zhang
4
+ */
5
+
6
+define(function (require) {
7
+
8
+    var factory = require('./testFactory');
9
+
10
+    /**
11
+     * test manager
12
+     *
13
+     * @param {number[]} amounts    test case amount array
14
+     * @param {string[]} caseNames test case name array
15
+     */
16
+    function TestManager(amounts, caseNames) {
17
+        this.caseNames = caseNames;
18
+        this.amounts = amounts;
19
+
20
+        this.init();
21
+    }
22
+
23
+    /**
24
+     * init before running a test
25
+     */
26
+    TestManager.prototype.init = function () {
27
+        this.times = [];
28
+
29
+        this.totalAmounts = 0;
30
+        for (var i = 0; i < this.amounts.length; ++i) {
31
+            this.totalAmounts += this.amounts[i];
32
+        }
33
+        this.totalAmounts *= this.caseNames.length;
34
+
35
+        this.ranAmounts = 0;
36
+    };
37
+
38
+    /**
39
+     * run a test case
40
+     *
41
+     * @param  {number} cid case name id
42
+     * @param  {number} aid amount id
43
+     * @return {Object} case name, case id, amount id, and run time
44
+     */
45
+    TestManager.prototype.run = function (cid, aid) {
46
+        // cancel if last test time of the same caseName is larger than 5
47
+        var test = factory.create(this.caseNames[cid], this.amounts[aid]);
48
+
49
+        var time = Math.floor(test.runTime(50));
50
+        if (!this.times[aid]) {
51
+            this.times[aid] = [];
52
+        }
53
+        this.times[aid][cid] = time;
54
+
55
+        this.ranAmounts += this.amounts[aid];
56
+
57
+        return {
58
+            caseName: this.caseNames[cid],
59
+            caseId: cid,
60
+            amountId: aid,
61
+            time: time
62
+        };
63
+    };
64
+
65
+    /**
66
+     * get current progress
67
+     *
68
+     * @return {number} progress from 0 to 1
69
+     */
70
+    TestManager.prototype.getProgress = function () {
71
+        return this.ranAmounts / this.totalAmounts;
72
+    };
73
+
74
+    /**
75
+     * draw report with ECharts chart
76
+     *
77
+     * @param  {Object} container DOM element to draw on
78
+     */
79
+    TestManager.prototype.drawReport = function (container) {
80
+        var chart = echarts.init(container);
81
+        var that = this;
82
+        chart.setOption({
83
+            series: (function () {
84
+                var series = [];
85
+                for (var cid = 0; cid < that.caseNames.length; ++cid) {
86
+                    var data = [];
87
+                    for (var aid = 0; aid < that.amounts.length; ++aid) {
88
+                        data.push([that.amounts[aid], that.times[aid][cid]]);
89
+                    }
90
+                    series.push({
91
+                        type: 'line',
92
+                        data: data,
93
+                        name: that.caseNames[cid]
94
+                    });
95
+                }
96
+                return series;
97
+            })(),
98
+            xAxis: {
99
+                name: 'Data Amount',
100
+                // type: 'log',
101
+                axisLabel: {
102
+                    formatter: function (v) {
103
+                        return Math.floor(v);
104
+                    }
105
+                }
106
+            },
107
+            yAxis: {
108
+                name: 'Run Time (milliseconds)',
109
+                // type: 'log',
110
+                axisLabel: {
111
+                    formatter: function (v) {
112
+                        return Math.floor(v);
113
+                    }
114
+                }
115
+            },
116
+            legend: {
117
+                show: true,
118
+                data: this.caseNames
119
+            },
120
+            tooltip: {
121
+                show: true,
122
+                trigger: 'axis'
123
+            }
124
+        });
125
+    };
126
+
127
+    /**
128
+     * get test result in json string
129
+     *
130
+     * @return {string} json string of result
131
+     */
132
+    TestManager.prototype.exportResult = function () {
133
+        var obj = {
134
+            caseNames: this.caseNames,
135
+            amounts: this.amounts,
136
+            times: this.times
137
+        };
138
+        return JSON.stringify(obj, null, '    ');
139
+    };
140
+
141
+    return TestManager;
142
+
143
+});

+ 77 - 0
src/main/resources/static/bower_components/echarts/build/.jshintrc

@@ -0,0 +1,77 @@
1
+{
2
+    "bitwise": false,
3
+    "camelcase": true,
4
+    "curly": true,
5
+    "eqeqeq": false,
6
+    "forin": false,
7
+    "immed": true,
8
+    "latedef": false,
9
+    "newcap": true,
10
+    "noarg": false,
11
+    "noempty": true,
12
+    "nonew": true,
13
+    "plusplus": false,
14
+    "quotmark": "single",
15
+    "regexp": false,
16
+    "undef": true,
17
+    "unused": "vars",
18
+    "strict": false,
19
+    "trailing": false,
20
+    "maxparams": 20,
21
+    "maxdepth": 6,
22
+    "maxlen": 200,
23
+
24
+    "asi": false,
25
+    "boss": false,
26
+    "debug": false,
27
+    "eqnull": true,
28
+    "esversion": 6,
29
+    "evil": true,
30
+    "expr": true,
31
+    "funcscope": false,
32
+    "globalstrict": false,
33
+    "iterator": false,
34
+    "lastsemic": false,
35
+    "laxbreak": true,
36
+    "laxcomma": false,
37
+    "loopfunc": false,
38
+    "multistr": false,
39
+    "onecase": false,
40
+    "proto": false,
41
+    "regexdash": false,
42
+    "scripturl": false,
43
+    "smarttabs": false,
44
+    "shadow": true,
45
+    "sub": true,
46
+    "supernew": false,
47
+    "validthis": true,
48
+
49
+    "browser": true,
50
+    "couch": false,
51
+    "devel": true,
52
+    "dojo": false,
53
+    "jquery": true,
54
+    "mootools": false,
55
+    "node": false,
56
+    "nonstandard": false,
57
+    "prototypejs": false,
58
+    "rhino": false,
59
+    "wsh": false,
60
+
61
+    "nomen": false,
62
+    "onevar": false,
63
+    "passfail": false,
64
+    "white": false,
65
+
66
+    "varstmt": true,
67
+
68
+    "predef": [
69
+        "__DEV__",
70
+        "global",
71
+        "require",
72
+        "exports",
73
+        "Buffer",
74
+        "module",
75
+        "__dirname"
76
+    ]
77
+}

+ 160 - 0
src/main/resources/static/bower_components/echarts/build/amd2common.js

@@ -0,0 +1,160 @@
1
+var glob = require('glob');
2
+var fsExtra = require('fs-extra');
3
+var esprima = require('esprima');
4
+
5
+function run(cb) {
6
+    glob('**/*.js', {
7
+        cwd: __dirname + '/../src/'
8
+    }, function (err, files) {
9
+        files.forEach(function (filePath) {
10
+            var code = parse(fsExtra.readFileSync(
11
+                __dirname + '/../src/' + filePath, 'utf-8'));
12
+            code = code.replace(/require\(([\'"])zrender\//g, 'require($1zrender/lib/');
13
+            fsExtra.outputFileSync(
14
+                __dirname + '/../lib/' + filePath,
15
+                code, 'utf-8');
16
+        });
17
+
18
+        cb && cb();
19
+    });
20
+}
21
+
22
+if (require.main === module) {
23
+    run();
24
+}
25
+else {
26
+    module.exports = run;
27
+}
28
+
29
+var MAGIC_DEPS = {
30
+    'exports' : true,
31
+    'module' : true,
32
+    'require' : true
33
+};
34
+
35
+var SIMPLIFIED_CJS = ['require', 'exports', 'module'];
36
+
37
+// Convert AMD-style JavaScript string into node.js compatible module
38
+function parse (raw){
39
+    var output = '';
40
+    var ast = esprima.parse(raw, {
41
+        range: true,
42
+        raw: true
43
+    });
44
+
45
+    var defines = ast.body.filter(isDefine);
46
+
47
+    if ( defines.length > 1 ){
48
+        throw new Error('Each file can have only a single define call. Found "'+ defines.length +'"');
49
+    } else if (!defines.length){
50
+        return raw;
51
+    }
52
+
53
+    var def = defines[0];
54
+    var args = def.expression['arguments'];
55
+    var factory = getFactory( args );
56
+    var useStrict = getUseStrict( factory );
57
+
58
+    // do replacements in-place to avoid modifying the code more than needed
59
+    if (useStrict) {
60
+        output += useStrict.expression.raw +';\n';
61
+    }
62
+    output += raw.substring( 0, def.range[0] ); // anything before define
63
+    output += getRequires(args, factory); // add requires
64
+    output += getBody(raw, factory.body, useStrict); // module body
65
+
66
+    output += raw.substring( def.range[1], raw.length ); // anything after define
67
+
68
+    return output;
69
+}
70
+
71
+
72
+function getRequires(args, factory){
73
+    var requires = [];
74
+    var deps = getDependenciesNames( args );
75
+    var params = factory.params.map(function(param, i){
76
+        return {
77
+            name : param.name,
78
+            // simplified cjs doesn't have deps
79
+            dep : (deps.length)? deps[i] : SIMPLIFIED_CJS[i]
80
+        };
81
+    });
82
+
83
+    params.forEach(function(param){
84
+        if ( MAGIC_DEPS[param.dep] && !MAGIC_DEPS[param.name] ) {
85
+            // if user remaped magic dependency we declare a var
86
+            requires.push( 'var '+ param.name +' = '+ param.dep +';' );
87
+        } else if ( param.dep && !MAGIC_DEPS[param.dep] ) {
88
+            // only do require for params that have a matching dependency also
89
+            // skip "magic" dependencies
90
+            requires.push( 'var '+ param.name +' = require(\''+ param.dep +'\');' );
91
+        }
92
+    });
93
+
94
+    return requires.join('\n');
95
+}
96
+
97
+
98
+function getDependenciesNames(args){
99
+    var deps = [];
100
+    var arr = args.filter(function(arg){
101
+        return arg.type === 'ArrayExpression';
102
+    })[0];
103
+
104
+    if (arr) {
105
+        deps = arr.elements.map(function(el){
106
+            return el.value;
107
+        });
108
+    }
109
+
110
+    return deps;
111
+}
112
+
113
+
114
+function isDefine(node){
115
+    return node.type === 'ExpressionStatement' &&
116
+           node.expression.type === 'CallExpression' &&
117
+           node.expression.callee.type === 'Identifier' &&
118
+           node.expression.callee.name === 'define';
119
+}
120
+
121
+
122
+function getFactory(args){
123
+    return args.filter(function(arg){
124
+        return arg.type === 'FunctionExpression';
125
+    })[0];
126
+}
127
+
128
+
129
+function getBody(raw, factoryBody, useStrict){
130
+    var returnStatement = factoryBody.body.filter(function(node){
131
+        return node.type === 'ReturnStatement';
132
+    })[0];
133
+
134
+    var body = '';
135
+    var bodyStart = useStrict ? useStrict.expression.range[1] + 1 : factoryBody.range[0] + 1;
136
+
137
+    if (returnStatement) {
138
+        body += raw.substring( bodyStart, returnStatement.range[0] );
139
+        // "return ".length === 7 so we add "6" to returnStatement start
140
+        body += 'module.exports ='+ raw.substring( returnStatement.range[0] + 6, factoryBody.range[1] - 1 );
141
+    } else {
142
+        // if using exports or module.exports or just a private module we
143
+        // simply return the factoryBody content
144
+        body = raw.substring( bodyStart, factoryBody.range[1] - 1 );
145
+    }
146
+
147
+    return body;
148
+}
149
+
150
+
151
+function getUseStrict(factory){
152
+    return factory.body.body.filter(isUseStrict)[0];
153
+}
154
+
155
+
156
+function isUseStrict(node){
157
+    return node.type === 'ExpressionStatement' &&
158
+            node.expression.type === 'Literal' &&
159
+            node.expression.value === 'use strict';
160
+}

+ 236 - 0
src/main/resources/static/bower_components/echarts/build/build.js

@@ -0,0 +1,236 @@
1
+#!/usr/bin/env node
2
+
3
+const fsExtra = require('fs-extra');
4
+const fs = require('fs');
5
+const {resolve} = require('path');
6
+const config = require('./config.js');
7
+const commander = require('commander');
8
+const {build, watch, color} = require('zrender/build/helper');
9
+const ecLangPlugin = require('./rollup-plugin-ec-lang');
10
+const prePublish = require('./pre-publish');
11
+const recheckDEV = require('zrender/build/babel-plugin-transform-remove-dev').recheckDEV;
12
+
13
+function run() {
14
+
15
+    /**
16
+     * Tips for `commander`:
17
+     * (1) If arg xxx not specified, `commander.xxx` is undefined.
18
+     *     Otherwise:
19
+     *      If '-x, --xxx', `commander.xxx` can only be true/false, even if '--xxx yyy' input.
20
+     *      If '-x, --xxx <some>', the 'some' string is required, or otherwise error will be thrown.
21
+     *      If '-x, --xxx [some]', the 'some' string is optional, that is, `commander.xxx` can be boolean or string.
22
+     * (2) `node ./build/build.js --help` will print helper info and exit.
23
+     */
24
+
25
+    let descIndent = '                                 ';
26
+    let egIndent = '    ';
27
+
28
+    commander
29
+        .usage('[options]')
30
+        .description([
31
+            'Build echarts and generate result files in directory `echarts/dist`.',
32
+            '',
33
+            '  For example:',
34
+            '',
35
+            egIndent + 'node build/build.js --release'
36
+                + '\n' + descIndent + '# Build all to `dist` folder.',
37
+            egIndent + 'node build/build.js --prepublish'
38
+                + '\n' + descIndent + '# Only prepublish.',
39
+            egIndent + 'node build/build.js --removedev'
40
+                + '\n' + descIndent + '# Remove __DEV__ code. If --min, __DEV__ always be removed.',
41
+            egIndent + 'node build/build.js --type ""'
42
+                + '\n' + descIndent + '# Only generate `dist/echarts.js`.',
43
+            egIndent + 'node build/build.js --type common --min'
44
+                + '\n' + descIndent + '# Only generate `dist/echarts.common.min.js`.',
45
+            egIndent + 'node build/build.js --type simple --min --lang en'
46
+                + '\n' + descIndent + '# Only generate `dist/echarts-en.simple.min.js`.',
47
+            egIndent + 'node build/build.js --lang "my/lang.js" -i "my/index.js" -o "my/bundle.js"'
48
+                + '\n' + descIndent + '# Take `<cwd>/my/index.js` as input and generate `<cwd>/my/bundle.js`,'
49
+                + '\n' + descIndent + 'where `<cwd>/my/lang.js` is used as language file.',
50
+        ].join('\n'))
51
+        .option(
52
+            '-w, --watch', [
53
+            'Watch modifications of files and auto-compile to dist file. For example,',
54
+            descIndent + '`echarts/dist/echarts.js`.'
55
+        ].join('\n'))
56
+        .option(
57
+            '--lang <language file path or shortcut>', [
58
+            'Use the specified file instead of `echarts/src/lang.js`. For example:',
59
+            descIndent + '`--lang en` will use `echarts/src/langEN.js`.',
60
+            descIndent + '`--lang my/langDE.js` will use `<cwd>/my/langDE.js`. -o must be specified in this case.',
61
+            descIndent + '`--lang /my/indexSW.js` will use `/my/indexSW.js`. -o must be specified in this case.'
62
+        ].join('\n'))
63
+        .option(
64
+            '--release',
65
+            'Build all for release'
66
+        )
67
+        .option(
68
+            '--prepublish',
69
+            'Build all for release'
70
+        )
71
+        .option(
72
+            '--removedev',
73
+            'Remove __DEV__ code. If --min, __DEV__ always be removed.'
74
+        )
75
+        .option(
76
+            '--min',
77
+            'Whether to compress the output file, and remove error-log-print code.'
78
+        )
79
+        .option(
80
+            '--type <type name>', [
81
+            'Can be "simple" or "common" or "" (default). For example,',
82
+            descIndent + '`--type ""` or `--type "common"`.'
83
+        ].join('\n'))
84
+        .option(
85
+            '--sourcemap',
86
+            'Whether output sourcemap.'
87
+        )
88
+        .option(
89
+            '--format <format>',
90
+            'The format of output bundle. Can be "umd", "amd", "iife", "cjs", "es".'
91
+        )
92
+        .option(
93
+            '-i, --input <input file path>',
94
+            'If input file path is specified, output file path must be specified too.'
95
+        )
96
+        .option(
97
+            '-o, --output <output file path>',
98
+            'If output file path is specified, input file path must be specified too.'
99
+        )
100
+        .parse(process.argv);
101
+
102
+    let isWatch = !!commander.watch;
103
+    let isRelease = !!commander.release;
104
+    let isPrePublish = !!commander.prepublish;
105
+
106
+    let opt = {
107
+        lang: commander.lang,
108
+        min: commander.min,
109
+        type: commander.type || '',
110
+        input: commander.input,
111
+        output: commander.output,
112
+        format: commander.format,
113
+        sourcemap: commander.sourcemap,
114
+        removeDev: commander.removedev,
115
+        addBundleVersion: isWatch
116
+    };
117
+
118
+    validateIO(opt.input, opt.output);
119
+    validateLang(opt.lang, opt.output);
120
+
121
+    normalizeParams(opt);
122
+
123
+    // Clear `echarts/dist`
124
+    if (isRelease) {
125
+        fsExtra.removeSync(getPath('./dist'));
126
+    }
127
+
128
+    if (isWatch) {
129
+        watch(config.createECharts(opt));
130
+    }
131
+    else if (isPrePublish) {
132
+        prePublish();
133
+    }
134
+    else if (isRelease) {
135
+        let configs = [];
136
+        let configForCheck;
137
+
138
+        [
139
+            {min: false},
140
+            {min: true},
141
+            {min: false, lang: 'en'},
142
+            {min: true, lang: 'en'}
143
+        ].forEach(function (opt) {
144
+
145
+            ['', 'simple', 'common'].forEach(function (type) {
146
+                let singleOpt = Object.assign({type}, opt);
147
+                normalizeParams(singleOpt);
148
+                let singleConfig = config.createECharts(singleOpt);
149
+                configs.push(singleConfig);
150
+
151
+                if (singleOpt.min && singleOpt.type === '') {
152
+                    configForCheck = singleConfig;
153
+                }
154
+            });
155
+        });
156
+
157
+        configs.push(
158
+            config.createBMap(false),
159
+            config.createBMap(true),
160
+            config.createDataTool(false),
161
+            config.createDataTool(true)
162
+        );
163
+
164
+        build(configs)
165
+            .then(function () {
166
+                checkCode(configForCheck);
167
+                prePublish();
168
+            }).catch(handleBuildError);
169
+    }
170
+    else {
171
+        let cfg = config.createECharts(opt);
172
+        build([cfg])
173
+            .then(function () {
174
+                if (opt.removeDev) {
175
+                    checkCode(cfg);
176
+                }
177
+            })
178
+            .catch(handleBuildError);
179
+    }
180
+}
181
+
182
+function normalizeParams(opt) {
183
+    if (opt.sourcemap == null) {
184
+        opt.sourcemap = !(opt.min || opt.type);
185
+    }
186
+    if (opt.removeDev == null) {
187
+        opt.removeDev = !!opt.min;
188
+    }
189
+}
190
+
191
+function handleBuildError(err) {
192
+    console.log(err);
193
+}
194
+
195
+function checkCode(singleConfig) {
196
+    // Make sure __DEV__ is eliminated.
197
+    let code = fs.readFileSync(singleConfig.output.file, {encoding: 'utf-8'});
198
+    if (!code) {
199
+        throw new Error(`${singleConfig.output.file} is empty`);
200
+    }
201
+    recheckDEV(code);
202
+    console.log(color('fgGreen', 'dim')('Check code: correct.'));
203
+}
204
+
205
+function validateIO(input, output) {
206
+    if ((input != null && output == null)
207
+        || (input == null && output != null)
208
+    ) {
209
+        throw new Error('`input` and `output` must be both set.');
210
+    }
211
+}
212
+
213
+function validateLang(lang, output) {
214
+    if (!lang) {
215
+        return;
216
+    }
217
+
218
+    let langInfo = ecLangPlugin.getLangFileInfo(lang);
219
+
220
+    if (langInfo.isOuter && !output) {
221
+        throw new Error('`-o` or `--output` must be specified if using a file path in `--lang`.');
222
+    }
223
+    if (!langInfo.absolutePath || !fs.statSync(langInfo.absolutePath).isFile()) {
224
+        throw new Error(`File ${langInfo.absolutePath} does not exist yet. Contribution is welcome!`);
225
+    }
226
+}
227
+
228
+/**
229
+ * @param {string} relativePath Based on echarts directory.
230
+ * @return {string} Absolute path.
231
+ */
232
+function getPath(relativePath) {
233
+    return resolve(__dirname, '../', relativePath);
234
+}
235
+
236
+run();

+ 154 - 0
src/main/resources/static/bower_components/echarts/build/config.js

@@ -0,0 +1,154 @@
1
+const nodeResolvePlugin = require('rollup-plugin-node-resolve');
2
+const uglifyPlugin = require('rollup-plugin-uglify');
3
+const ecRemoveDevPlugin = require('./rollup-plugin-ec-remove-dev');
4
+const ecLangPlugin = require('./rollup-plugin-ec-lang');
5
+const {resolve} = require('path');
6
+
7
+function getPathBasedOnECharts(path) {
8
+    return resolve(__dirname, '../', path);
9
+}
10
+
11
+function getPlugins({min, lang, sourcemap, removeDev, addBundleVersion}) {
12
+    let plugins = [];
13
+
14
+    removeDev && plugins.push(
15
+        ecRemoveDevPlugin({sourcemap})
16
+    );
17
+
18
+    lang && plugins.push(
19
+        ecLangPlugin({lang})
20
+    );
21
+
22
+    plugins.push(
23
+        nodeResolvePlugin()
24
+    );
25
+
26
+    addBundleVersion && plugins.push({
27
+        outro: function () {
28
+            return 'exports.bundleVersion = "' + (+new Date()) + '";';
29
+        }
30
+    });
31
+
32
+    min && plugins.push(uglifyPlugin({
33
+        compress: {
34
+            // Eliminate __DEV__ code.
35
+            // Currently, in uglify:
36
+            // `var vx; if(vx) {...}` can not be removed.
37
+            // `if (__DEV__) {...}` can be removed if `__DEV__` is defined as `false` in `global_defs`.
38
+            // 'global_defs': {
39
+            //     __DEV__: false
40
+            // },
41
+            'dead_code': true
42
+        }
43
+    }));
44
+
45
+    return plugins;
46
+}
47
+
48
+/**
49
+ * @param {Object} [opt]
50
+ * @param {string} [opt.type=''] '' or 'simple' or 'common'
51
+ * @param {boolean} [opt.min=false]
52
+ * @param {string} [opt.lang=undefined] null/undefined/'' or 'en' or 'fi' or a file path.
53
+ * @param {string} [opt.input=undefined] If set, `opt.output` is required too, and `opt.type` is ignored.
54
+ * @param {string} [opt.output=undefined] If set, `opt.input` is required too, and `opt.type` is ignored.
55
+ * @param {boolean} [opt.sourcemap] If set, `opt.input` is required too, and `opt.type` is ignored.
56
+ * @param {boolean} [opt.removeDev]
57
+ * @param {string} [opt.format='umd'] If set, `opt.input` is required too, and `opt.type` is ignored.
58
+ * @param {boolean} [opt.addBundleVersion=false] Only for debug in watch, prompt that the two build is different.
59
+ */
60
+exports.createECharts = function (opt = {}) {
61
+    let srcType = opt.type ? '.' + opt.type : '.all';
62
+    let postfixType = opt.type ? '.' + opt.type : '';
63
+    let postfixMin = opt.min ? '.min' : '';
64
+    let postfixLang = opt.lang ? '-' + opt.lang.toLowerCase() : '';
65
+    let input = opt.input;
66
+    let output = opt.output;
67
+    let sourcemap = opt.sourcemap;
68
+    let format = opt.format || 'umd';
69
+
70
+    if (input != null || output != null) {
71
+        // Based on process.cwd();
72
+        input = resolve(input);
73
+        output = resolve(output);
74
+    }
75
+    else {
76
+        input = getPathBasedOnECharts(`./echarts${srcType}.js`);
77
+        output = getPathBasedOnECharts(`dist/echarts${postfixLang}${postfixType}${postfixMin}.js`);
78
+    }
79
+
80
+    return {
81
+        plugins: getPlugins(opt),
82
+        input: input,
83
+        legacy: true, // Support IE8-
84
+        output: {
85
+            name: 'echarts',
86
+            format: format,
87
+            sourcemap: sourcemap,
88
+            legacy: true, // Must be declared both in inputOptions and outputOptions.
89
+            file: output
90
+        },
91
+        watch: {
92
+            include: [
93
+                getPathBasedOnECharts('./src/**'),
94
+                getPathBasedOnECharts('./echarts*.js'),
95
+                getPathBasedOnECharts('../zrender/src/**')
96
+            ]
97
+        }
98
+    };
99
+};
100
+
101
+/**
102
+ * @param {boolean} [min=false]
103
+ */
104
+exports.createBMap = function (min) {
105
+    let postfix = min ? '.min' : '';
106
+
107
+    return {
108
+        plugins: getPlugins({min}),
109
+        input: getPathBasedOnECharts(`./extension-src/bmap/bmap.js`),
110
+        legacy: true, // Support IE8-
111
+        external: ['echarts'],
112
+        output: {
113
+            name: 'bmap',
114
+            format: 'umd',
115
+            sourcemap: !min,
116
+            legacy: true, // Must be declared both in inputOptions and outputOptions.
117
+            globals: {
118
+                // For UMD `global.echarts`
119
+                echarts: 'echarts'
120
+            },
121
+            file: getPathBasedOnECharts(`dist/extension/bmap${postfix}.js`)
122
+        },
123
+        watch: {
124
+            include: [getPathBasedOnECharts('./extension-src/bmap/**')]
125
+        }
126
+    };
127
+};
128
+
129
+/**
130
+ * @param {boolean} [min=false]
131
+ */
132
+exports.createDataTool = function (min) {
133
+    let postfix = min ? '.min' : '';
134
+    return {
135
+        plugins: getPlugins({min}),
136
+        input: getPathBasedOnECharts(`./extension-src/dataTool/index.js`),
137
+        legacy: true, // Support IE8-
138
+        external: ['echarts'],
139
+        output: {
140
+            name: 'dataTool',
141
+            format: 'umd',
142
+            sourcemap: !min,
143
+            legacy: true, // Must be declared both in inputOptions and outputOptions.
144
+            globals: {
145
+                // For UMD `global.echarts`
146
+                echarts: 'echarts'
147
+            },
148
+            file: getPathBasedOnECharts(`dist/extension/dataTool${postfix}.js`)
149
+        },
150
+        watch: {
151
+            include: [getPathBasedOnECharts('./extension-src/dataTool/**')]
152
+        }
153
+    };
154
+};

+ 165 - 0
src/main/resources/static/bower_components/echarts/build/mangleString.js

@@ -0,0 +1,165 @@
1
+var esprima = require('esprima');
2
+var escodegen = require('escodegen');
3
+var estraverse = require('estraverse');
4
+
5
+var SYNTAX = estraverse.Syntax;
6
+
7
+var STR_MIN_LENGTH = 5;
8
+var STR_MIN_DIST = 1000;
9
+var STR_MIN_COUNT = 2;
10
+
11
+function createDeclaration(declarations) {
12
+    return {
13
+        type: SYNTAX.VariableDeclaration,
14
+        declarations: declarations,
15
+        kind: 'var'
16
+    };
17
+}
18
+
19
+function createDeclarator(id, init) {
20
+    return {
21
+        type: SYNTAX.VariableDeclarator,
22
+        id: {
23
+            type: SYNTAX.Identifier,
24
+            name: id
25
+        },
26
+        init: {
27
+            type: SYNTAX.Literal,
28
+            value: init
29
+        }
30
+    };
31
+}
32
+
33
+function base54Digits() {
34
+    return 'etnrisouaflchpdvmgybwESxTNCkLAOM_DPHBjFIqRUzWXV$JKQGYZ0516372984';
35
+}
36
+
37
+var base54 = (function(){
38
+    var DIGITS = base54Digits();
39
+    return function(num) {
40
+        var ret = '';
41
+        var base = 54;
42
+        do {
43
+            ret += DIGITS.charAt(num % base);
44
+            num = Math.floor(num / base);
45
+            base = 64;
46
+        } while (num > 0);
47
+        return ret;
48
+    };
49
+})();
50
+
51
+function mangleString(source) {
52
+
53
+    var ast = esprima.parse(source, {
54
+        loc: true
55
+    });
56
+
57
+    var stringVariables = {};
58
+
59
+    var stringRelaceCount = 0;
60
+
61
+    estraverse.traverse(ast, {
62
+        enter: function (node, parent) {
63
+            if (node.type === SYNTAX.Literal
64
+                && typeof node.value === 'string'
65
+            ) {
66
+                // Ignore if string is the key of property
67
+                if (parent.type === SYNTAX.Property) {
68
+                    return;
69
+                }
70
+                var value = node.value;
71
+                if (value.length > STR_MIN_LENGTH) {
72
+                    if (!stringVariables[value]) {
73
+                        stringVariables[value] = {
74
+                            count: 0,
75
+                            lastLoc: node.loc.start.line,
76
+                            name: '__echartsString__' + base54(stringRelaceCount++)
77
+                        };
78
+                    }
79
+                    var diff = node.loc.start.line - stringVariables[value].lastLoc;
80
+                    // GZIP ?
81
+                    if (diff >= STR_MIN_DIST) {
82
+                        stringVariables[value].lastLoc = node.loc.start.line;
83
+                        stringVariables[value].count++;
84
+                    }
85
+                }
86
+            }
87
+
88
+            if (node.type === SYNTAX.MemberExpression && !node.computed) {
89
+                if (node.property.type === SYNTAX.Identifier) {
90
+                    var value = node.property.name;
91
+                    if (value.length > STR_MIN_LENGTH) {
92
+                        if (!stringVariables[value]) {
93
+                            stringVariables[value] = {
94
+                                count: 0,
95
+                                lastLoc: node.loc.start.line,
96
+                                name: '__echartsString__' + base54(stringRelaceCount++)
97
+                            };
98
+                        }
99
+                        var diff = node.loc.start.line - stringVariables[value].lastLoc;
100
+                        if (diff >= STR_MIN_DIST) {
101
+                            stringVariables[value].lastLoc = node.loc.start.line;
102
+                            stringVariables[value].count++;
103
+                        }
104
+                    }
105
+                }
106
+            }
107
+        }
108
+    });
109
+
110
+    estraverse.replace(ast, {
111
+        enter: function (node, parent) {
112
+            if ((node.type === SYNTAX.Literal
113
+                && typeof node.value === 'string')
114
+            ) {
115
+                // Ignore if string is the key of property
116
+                if (parent.type === SYNTAX.Property) {
117
+                    return;
118
+                }
119
+                var str = node.value;
120
+                if (stringVariables[str] && stringVariables[str].count > STR_MIN_COUNT) {
121
+                    return {
122
+                        type: SYNTAX.Identifier,
123
+                        name: stringVariables[str].name
124
+                    };
125
+                }
126
+            }
127
+            if (node.type === SYNTAX.MemberExpression && !node.computed) {
128
+                if (node.property.type === SYNTAX.Identifier) {
129
+                    var str = node.property.name;
130
+                    if (stringVariables[str] && stringVariables[str].count > STR_MIN_COUNT) {
131
+                        return {
132
+                            type: SYNTAX.MemberExpression,
133
+                            object: node.object,
134
+                            property: {
135
+                                type: SYNTAX.Identifier,
136
+                                name: stringVariables[str].name
137
+                            },
138
+                            computed: true
139
+                        };
140
+                    }
141
+                }
142
+            }
143
+        }
144
+    });
145
+
146
+    // Add variables in the top
147
+    for (var str in stringVariables) {
148
+        // Used more than once
149
+        if (stringVariables[str].count > STR_MIN_COUNT) {
150
+            ast.body.unshift(createDeclaration([
151
+                createDeclarator(stringVariables[str].name, str)
152
+            ]));
153
+        }
154
+    }
155
+
156
+    return escodegen.generate(
157
+        ast,
158
+        {
159
+            format: {escapeless: true},
160
+            comment: true
161
+        }
162
+    );
163
+}
164
+
165
+exports = module.exports = mangleString;

+ 40 - 0
src/main/resources/static/bower_components/echarts/build/optimize.js

@@ -0,0 +1,40 @@
1
+var UglifyJS = require('uglify-js');
2
+var fs = require('fs');
3
+var etpl = require('etpl');
4
+var argv = require('optimist').argv;
5
+
6
+etpl.config({
7
+    commandOpen: '/**',
8
+    commandClose: '*/'
9
+});
10
+
11
+var mode = argv.m || 'all';
12
+var configPath = mode === 'all' ? 'config/echarts.js' : 'config/echarts.' + mode + '.js';
13
+var outPath = mode === 'all' ? '../dist/echarts.js' : '../dist/echarts.' + mode + '.js';
14
+
15
+var config = eval('(' + fs.readFileSync(configPath, 'utf-8') + ')');
16
+var mainCode = fs.readFileSync(outPath, 'utf-8');
17
+var startCode = fs.readFileSync('wrap/start.js', 'utf-8');
18
+var nutCode = fs.readFileSync('wrap/nut.js', 'utf-8');
19
+var endCode = fs.readFileSync('wrap/end.js', 'utf-8');
20
+
21
+endCode = etpl.compile(endCode)({
22
+    parts: config.include
23
+});
24
+
25
+// FIXME
26
+var sourceCode = [startCode, nutCode, require('./mangleString')(mainCode), endCode].join('\n');
27
+
28
+var ast = UglifyJS.parse(sourceCode);
29
+/* jshint camelcase: false */
30
+// compressor needs figure_out_scope too
31
+ast.figure_out_scope();
32
+ast = ast.transform(UglifyJS.Compressor( {} ));
33
+
34
+// need to figure out scope again so mangler works optimally
35
+ast.figure_out_scope();
36
+ast.compute_char_frequency();
37
+ast.mangle_names();
38
+
39
+fs.writeFileSync(outPath, [startCode, nutCode, mainCode, endCode].join('\n'), 'utf-8');
40
+fs.writeFileSync(outPath.replace('.js', '.min.js'), ast.print_to_string(), 'utf-8');

+ 72 - 0
src/main/resources/static/bower_components/echarts/build/pre-publish.js

@@ -0,0 +1,72 @@
1
+/**
2
+ * Compatible with prevoius folder structure: `echarts/lib` exists in `node_modules`
3
+ * (1) Build all files to CommonJS to `echarts/lib`.
4
+ * (2) Remove __DEV__.
5
+ * (3) Mount `echarts/src/export.js` to `echarts/lib/echarts.js`.
6
+ */
7
+
8
+const path = require('path');
9
+const fsExtra = require('fs-extra');
10
+const {color, travelSrcDir, prePulishSrc} = require('zrender/build/helper');
11
+
12
+const ecDir = path.resolve(__dirname, '..');
13
+const srcDir = path.resolve(__dirname, '../src');
14
+const extensionSrcDir = path.resolve(__dirname, '../extension-src');
15
+const extensionDir = path.resolve(__dirname, '../extension');
16
+const libDir = path.resolve(__dirname, '../lib');
17
+
18
+
19
+module.exports = function () {
20
+
21
+    fsExtra.removeSync(libDir);
22
+    fsExtra.ensureDirSync(libDir);
23
+
24
+    travelSrcDir(srcDir, ({fileName, relativePath, absolutePath}) => {
25
+        prePulishSrc({
26
+            inputPath: absolutePath,
27
+            outputPath: path.resolve(libDir, relativePath, fileName),
28
+            transform
29
+        });
30
+    });
31
+
32
+    travelSrcDir(extensionSrcDir, ({fileName, relativePath, absolutePath}) => {
33
+        prePulishSrc({
34
+            inputPath: absolutePath,
35
+            outputPath: path.resolve(extensionDir, relativePath, fileName),
36
+            transform
37
+        });
38
+    });
39
+
40
+    prePulishSrc({
41
+        inputPath: path.resolve(ecDir, 'echarts.all.js'),
42
+        outputPath: path.resolve(ecDir, 'index.js')
43
+    });
44
+    prePulishSrc({
45
+        inputPath: path.resolve(ecDir, 'echarts.common.js'),
46
+        outputPath: path.resolve(ecDir, 'index.common.js')
47
+    });
48
+    prePulishSrc({
49
+        inputPath: path.resolve(ecDir, 'echarts.simple.js'),
50
+        outputPath: path.resolve(ecDir, 'index.simple.js')
51
+    });
52
+
53
+    function transform({code, inputPath, outputPath}) {
54
+        if (inputPath === path.resolve(ecDir, 'src/echarts.js')) {
55
+            // Using `echarts/echarts.blank.js` to overwrite `echarts/lib/echarts.js`
56
+            // for including exports API.
57
+            code += `
58
+var ___ec_export = require("./export");
59
+(function () {
60
+    for (var key in ___ec_export) {
61
+        if (___ec_export.hasOwnProperty(key)) {
62
+            exports[key] = ___ec_export[key];
63
+        }
64
+    }
65
+})();`;
66
+        }
67
+
68
+        return code;
69
+    }
70
+
71
+    console.log(color('fgGreen', 'bright')('All done.'));
72
+};

+ 38 - 0
src/main/resources/static/bower_components/echarts/build/rollup-plugin-ec-dev.js

@@ -0,0 +1,38 @@
1
+/**
2
+ * Define variable `__DEV__`.
3
+ *
4
+ * Usage:
5
+ *
6
+ * import ecDevPlugin from 'echats/build/rollup-plugin-ec-dev';
7
+ * let rollupConfig = {
8
+ *     plugins: [
9
+ *         ecDevPlugin(),
10
+ *         ...
11
+ *     ]
12
+ * };
13
+ *
14
+ * We use global variable `__DEV__` for convenience, but it bring trouble
15
+ * while building: it is not able to make sure the decaration of `__DEV__`
16
+ * occures in front of the whole code if we use ES module import. So we
17
+ * use the plugin to handle that.
18
+ *
19
+ * See `echarts/src/config.js`.
20
+ */
21
+
22
+module.exports = function (opt) {
23
+
24
+    return {
25
+        intro: function () {
26
+            return [
27
+                'if (typeof __DEV__ === "undefined") {',
28
+                '    if (typeof window !== "undefined") {',
29
+                '        window.__DEV__ = true;',
30
+                '    }',
31
+                '    else if (typeof global !== "undefined") {',
32
+                '        global.__DEV__ = true;',
33
+                '    }',
34
+                '}'
35
+            ].join('\n');
36
+        }
37
+    };
38
+};

+ 60 - 0
src/main/resources/static/bower_components/echarts/build/rollup-plugin-ec-lang.js

@@ -0,0 +1,60 @@
1
+/**
2
+ * Find language definations.
3
+ *
4
+ * Usage:
5
+ *
6
+ * import ecLangPlugin from 'echarts/build/rollup-plugin-ec-lang';
7
+ * let rollupConfig = {
8
+ *     plugins: [
9
+ *         ecLangPlugin({lang: 'en'}),
10
+ *         ...
11
+ *     ]
12
+ * };
13
+ */
14
+
15
+const {resolve} = require('path');
16
+const {readFileSync} = require('fs');
17
+
18
+/**
19
+ * @param {Object} [opt]
20
+ * @param {string} [opt.lang=null] null/undefined/'' or 'en' or 'fi' or a file path.
21
+ */
22
+function getPlugin(opt) {
23
+    let lang = opt && opt.lang || '';
24
+
25
+    return {
26
+        load: function (absolutePath) {
27
+            if (/\/src\/lang\.js$/.test(absolutePath)) {
28
+                let langPath = getLangFileInfo(lang).absolutePath;
29
+                if (langPath) {
30
+                    absolutePath = langPath;
31
+                }
32
+            }
33
+            return readFileSync(absolutePath, 'utf-8');
34
+        }
35
+    };
36
+}
37
+
38
+/**
39
+ * @param {string} lang null/undefined/'' or 'en' or 'fi' or a file path.
40
+ * @return {Object} {isOuter, absolutePath}
41
+ */
42
+let getLangFileInfo = getPlugin.getLangFileInfo = function (lang) {
43
+    let absolutePath;
44
+    let isOuter = false;
45
+
46
+    if (lang) {
47
+        if (/^[a-zA-Z]{2}$/.test(lang)) {
48
+            absolutePath = resolve(__dirname, '../', 'src/lang' + lang.toUpperCase() + '.js')
49
+        }
50
+        else {
51
+            isOuter = true;
52
+            // `lang` is an absolute path or a relative path based on process.cwd().
53
+            absolutePath = resolve(lang);
54
+        }
55
+    }
56
+
57
+    return {isOuter, absolutePath};
58
+};
59
+
60
+module.exports = getPlugin;

+ 35 - 0
src/main/resources/static/bower_components/echarts/build/rollup-plugin-ec-remove-dev.js

@@ -0,0 +1,35 @@
1
+/**
2
+ * Remove the code of `if (__DEV__) { ... }`.
3
+ *
4
+ * Usage:
5
+ *
6
+ * import ecRemoveDevPlugin from 'echats/build/rollup-plugin-ec-remove-dev';
7
+ * let rollupConfig = {
8
+ *     plugins: [
9
+ *         ecRemoveDevPlugin(),
10
+ *         ...
11
+ *     ]
12
+ * };
13
+ */
14
+
15
+const babel = require('@babel/core');
16
+const removeDEVPlugin = require('zrender/build/babel-plugin-transform-remove-dev');
17
+
18
+/**
19
+ * @param {Object} [opt]
20
+ * @param {Object} [opt.sourcemap]
21
+ */
22
+module.exports = function ({sourcemap} = {}) {
23
+
24
+    return {
25
+        transform: function (sourceCode) {
26
+
27
+            let {code, map} = babel.transform(sourceCode, {
28
+                plugins: [removeDEVPlugin],
29
+                sourceMaps: sourcemap
30
+            });
31
+
32
+            return {code, map};
33
+        }
34
+    };
35
+};

Dosya farkı çok büyük olduğundan ihmal edildi
+ 48836 - 0
src/main/resources/static/bower_components/echarts/dist/echarts-en.common.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 0
src/main/resources/static/bower_components/echarts/dist/echarts-en.common.min.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 74797 - 0
src/main/resources/static/bower_components/echarts/dist/echarts-en.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 0
src/main/resources/static/bower_components/echarts/dist/echarts-en.js.map


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 0
src/main/resources/static/bower_components/echarts/dist/echarts-en.min.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 32286 - 0
src/main/resources/static/bower_components/echarts/dist/echarts-en.simple.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 0
src/main/resources/static/bower_components/echarts/dist/echarts-en.simple.min.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 48836 - 0
src/main/resources/static/bower_components/echarts/dist/echarts.common.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 0
src/main/resources/static/bower_components/echarts/dist/echarts.common.min.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 74797 - 0
src/main/resources/static/bower_components/echarts/dist/echarts.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 0
src/main/resources/static/bower_components/echarts/dist/echarts.js.map


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 0
src/main/resources/static/bower_components/echarts/dist/echarts.min.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 32286 - 0
src/main/resources/static/bower_components/echarts/dist/echarts.simple.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 0
src/main/resources/static/bower_components/echarts/dist/echarts.simple.min.js


+ 342 - 0
src/main/resources/static/bower_components/echarts/dist/extension/bmap.js

@@ -0,0 +1,342 @@
1
+(function (global, factory) {
2
+	typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('echarts')) :
3
+	typeof define === 'function' && define.amd ? define(['exports', 'echarts'], factory) :
4
+	(factory((global.bmap = {}),global.echarts));
5
+}(this, (function (exports,echarts) { 'use strict';
6
+
7
+/* global BMap */
8
+
9
+function BMapCoordSys(bmap, api) {
10
+    this._bmap = bmap;
11
+    this.dimensions = ['lng', 'lat'];
12
+    this._mapOffset = [0, 0];
13
+
14
+    this._api = api;
15
+
16
+    this._projection = new BMap.MercatorProjection();
17
+}
18
+
19
+BMapCoordSys.prototype.dimensions = ['lng', 'lat'];
20
+
21
+BMapCoordSys.prototype.setZoom = function (zoom) {
22
+    this._zoom = zoom;
23
+};
24
+
25
+BMapCoordSys.prototype.setCenter = function (center) {
26
+    this._center = this._projection.lngLatToPoint(new BMap.Point(center[0], center[1]));
27
+};
28
+
29
+BMapCoordSys.prototype.setMapOffset = function (mapOffset) {
30
+    this._mapOffset = mapOffset;
31
+};
32
+
33
+BMapCoordSys.prototype.getBMap = function () {
34
+    return this._bmap;
35
+};
36
+
37
+BMapCoordSys.prototype.dataToPoint = function (data) {
38
+    var point = new BMap.Point(data[0], data[1]);
39
+    // TODO mercator projection is toooooooo slow
40
+    // var mercatorPoint = this._projection.lngLatToPoint(point);
41
+
42
+    // var width = this._api.getZr().getWidth();
43
+    // var height = this._api.getZr().getHeight();
44
+    // var divider = Math.pow(2, 18 - 10);
45
+    // return [
46
+    //     Math.round((mercatorPoint.x - this._center.x) / divider + width / 2),
47
+    //     Math.round((this._center.y - mercatorPoint.y) / divider + height / 2)
48
+    // ];
49
+    var px = this._bmap.pointToOverlayPixel(point);
50
+    var mapOffset = this._mapOffset;
51
+    return [px.x - mapOffset[0], px.y - mapOffset[1]];
52
+};
53
+
54
+BMapCoordSys.prototype.pointToData = function (pt) {
55
+    var mapOffset = this._mapOffset;
56
+    var pt = this._bmap.overlayPixelToPoint({
57
+        x: pt[0] + mapOffset[0],
58
+        y: pt[1] + mapOffset[1]
59
+    });
60
+    return [pt.lng, pt.lat];
61
+};
62
+
63
+BMapCoordSys.prototype.getViewRect = function () {
64
+    var api = this._api;
65
+    return new echarts.graphic.BoundingRect(0, 0, api.getWidth(), api.getHeight());
66
+};
67
+
68
+BMapCoordSys.prototype.getRoamTransform = function () {
69
+    return echarts.matrix.create();
70
+};
71
+
72
+BMapCoordSys.prototype.prepareCustoms = function (data) {
73
+    var rect = this.getViewRect();
74
+    return {
75
+        coordSys: {
76
+            // The name exposed to user is always 'cartesian2d' but not 'grid'.
77
+            type: 'bmap',
78
+            x: rect.x,
79
+            y: rect.y,
80
+            width: rect.width,
81
+            height: rect.height
82
+        },
83
+        api: {
84
+            coord: echarts.util.bind(this.dataToPoint, this),
85
+            size: echarts.util.bind(dataToCoordSize, this)
86
+        }
87
+    };
88
+};
89
+
90
+function dataToCoordSize(dataSize, dataItem) {
91
+    dataItem = dataItem || [0, 0];
92
+    return echarts.util.map([0, 1], function (dimIdx) {
93
+        var val = dataItem[dimIdx];
94
+        var halfSize = dataSize[dimIdx] / 2;
95
+        var p1 = [];
96
+        var p2 = [];
97
+        p1[dimIdx] = val - halfSize;
98
+        p2[dimIdx] = val + halfSize;
99
+        p1[1 - dimIdx] = p2[1 - dimIdx] = dataItem[1 - dimIdx];
100
+        return Math.abs(this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx]);
101
+    }, this);
102
+}
103
+
104
+var Overlay;
105
+
106
+// For deciding which dimensions to use when creating list data
107
+BMapCoordSys.dimensions = BMapCoordSys.prototype.dimensions;
108
+
109
+function createOverlayCtor() {
110
+    function Overlay(root) {
111
+        this._root = root;
112
+    }
113
+
114
+    Overlay.prototype = new BMap.Overlay();
115
+    /**
116
+     * 初始化
117
+     *
118
+     * @param {BMap.Map} map
119
+     * @override
120
+     */
121
+    Overlay.prototype.initialize = function (map) {
122
+        map.getPanes().labelPane.appendChild(this._root);
123
+        return this._root;
124
+    };
125
+    /**
126
+     * @override
127
+     */
128
+    Overlay.prototype.draw = function () {};
129
+
130
+    return Overlay;
131
+}
132
+
133
+BMapCoordSys.create = function (ecModel, api) {
134
+    var bmapCoordSys;
135
+    var root = api.getDom();
136
+
137
+    // TODO Dispose
138
+    ecModel.eachComponent('bmap', function (bmapModel) {
139
+        var painter = api.getZr().painter;
140
+        var viewportRoot = painter.getViewportRoot();
141
+        if (typeof BMap === 'undefined') {
142
+            throw new Error('BMap api is not loaded');
143
+        }
144
+        Overlay = Overlay || createOverlayCtor();
145
+        if (bmapCoordSys) {
146
+            throw new Error('Only one bmap component can exist');
147
+        }
148
+        if (!bmapModel.__bmap) {
149
+            // Not support IE8
150
+            var bmapRoot = root.querySelector('.ec-extension-bmap');
151
+            if (bmapRoot) {
152
+                // Reset viewport left and top, which will be changed
153
+                // in moving handler in BMapView
154
+                viewportRoot.style.left = '0px';
155
+                viewportRoot.style.top = '0px';
156
+                root.removeChild(bmapRoot);
157
+            }
158
+            bmapRoot = document.createElement('div');
159
+            bmapRoot.style.cssText = 'width:100%;height:100%';
160
+            // Not support IE8
161
+            bmapRoot.classList.add('ec-extension-bmap');
162
+            root.appendChild(bmapRoot);
163
+            var bmap = bmapModel.__bmap = new BMap.Map(bmapRoot);
164
+
165
+            var overlay = new Overlay(viewportRoot);
166
+            bmap.addOverlay(overlay);
167
+
168
+            // Override
169
+            painter.getViewportRootOffset = function () {
170
+                return {offsetLeft: 0, offsetTop: 0};
171
+            };
172
+        }
173
+        var bmap = bmapModel.__bmap;
174
+
175
+        // Set bmap options
176
+        // centerAndZoom before layout and render
177
+        var center = bmapModel.get('center');
178
+        var zoom = bmapModel.get('zoom');
179
+        if (center && zoom) {
180
+            var pt = new BMap.Point(center[0], center[1]);
181
+            bmap.centerAndZoom(pt, zoom);
182
+        }
183
+
184
+        bmapCoordSys = new BMapCoordSys(bmap, api);
185
+        bmapCoordSys.setMapOffset(bmapModel.__mapOffset || [0, 0]);
186
+        bmapCoordSys.setZoom(zoom);
187
+        bmapCoordSys.setCenter(center);
188
+
189
+        bmapModel.coordinateSystem = bmapCoordSys;
190
+    });
191
+
192
+    ecModel.eachSeries(function (seriesModel) {
193
+        if (seriesModel.get('coordinateSystem') === 'bmap') {
194
+            seriesModel.coordinateSystem = bmapCoordSys;
195
+        }
196
+    });
197
+};
198
+
199
+function v2Equal(a, b) {
200
+    return a && b && a[0] === b[0] && a[1] === b[1];
201
+}
202
+
203
+echarts.extendComponentModel({
204
+    type: 'bmap',
205
+
206
+    getBMap: function () {
207
+        // __bmap is injected when creating BMapCoordSys
208
+        return this.__bmap;
209
+    },
210
+
211
+    setCenterAndZoom: function (center, zoom) {
212
+        this.option.center = center;
213
+        this.option.zoom = zoom;
214
+    },
215
+
216
+    centerOrZoomChanged: function (center, zoom) {
217
+        var option = this.option;
218
+        return !(v2Equal(center, option.center) && zoom === option.zoom);
219
+    },
220
+
221
+    defaultOption: {
222
+
223
+        center: [104.114129, 37.550339],
224
+
225
+        zoom: 5,
226
+
227
+        mapStyle: {},
228
+
229
+        roam: false
230
+    }
231
+});
232
+
233
+echarts.extendComponentView({
234
+    type: 'bmap',
235
+
236
+    render: function (bMapModel, ecModel, api) {
237
+        var rendering = true;
238
+
239
+        var bmap = bMapModel.getBMap();
240
+        var viewportRoot = api.getZr().painter.getViewportRoot();
241
+        var coordSys = bMapModel.coordinateSystem;
242
+        var moveHandler = function (type, target) {
243
+            if (rendering) {
244
+                return;
245
+            }
246
+            var offsetEl = viewportRoot.parentNode.parentNode.parentNode;
247
+            var mapOffset = [
248
+                -parseInt(offsetEl.style.left, 10) || 0,
249
+                -parseInt(offsetEl.style.top, 10) || 0
250
+            ];
251
+            viewportRoot.style.left = mapOffset[0] + 'px';
252
+            viewportRoot.style.top = mapOffset[1] + 'px';
253
+
254
+            coordSys.setMapOffset(mapOffset);
255
+            bMapModel.__mapOffset = mapOffset;
256
+
257
+            api.dispatchAction({
258
+                type: 'bmapRoam'
259
+            });
260
+        };
261
+
262
+        function zoomEndHandler() {
263
+            if (rendering) {
264
+                return;
265
+            }
266
+            api.dispatchAction({
267
+                type: 'bmapRoam'
268
+            });
269
+        }
270
+
271
+        bmap.removeEventListener('moving', this._oldMoveHandler);
272
+        // FIXME
273
+        // Moveend may be triggered by centerAndZoom method when creating coordSys next time
274
+        // bmap.removeEventListener('moveend', this._oldMoveHandler);
275
+        bmap.removeEventListener('zoomend', this._oldZoomEndHandler);
276
+        bmap.addEventListener('moving', moveHandler);
277
+        // bmap.addEventListener('moveend', moveHandler);
278
+        bmap.addEventListener('zoomend', zoomEndHandler);
279
+
280
+        this._oldMoveHandler = moveHandler;
281
+        this._oldZoomEndHandler = zoomEndHandler;
282
+
283
+        var roam = bMapModel.get('roam');
284
+        if (roam && roam !== 'scale') {
285
+            bmap.enableDragging();
286
+        }
287
+        else {
288
+            bmap.disableDragging();
289
+        }
290
+        if (roam && roam !== 'move') {
291
+            bmap.enableScrollWheelZoom();
292
+            bmap.enableDoubleClickZoom();
293
+            bmap.enablePinchToZoom();
294
+        }
295
+        else {
296
+            bmap.disableScrollWheelZoom();
297
+            bmap.disableDoubleClickZoom();
298
+            bmap.disablePinchToZoom();
299
+        }
300
+
301
+        var originalStyle = bMapModel.__mapStyle;
302
+
303
+        var newMapStyle = bMapModel.get('mapStyle') || {};
304
+        // FIXME, Not use JSON methods
305
+        var mapStyleStr = JSON.stringify(newMapStyle);
306
+        if (JSON.stringify(originalStyle) !== mapStyleStr) {
307
+            // FIXME May have blank tile when dragging if setMapStyle
308
+            if (Object.keys(newMapStyle).length) {
309
+                bmap.setMapStyle(newMapStyle);
310
+            }
311
+            bMapModel.__mapStyle = JSON.parse(mapStyleStr);
312
+        }
313
+
314
+        rendering = false;
315
+    }
316
+});
317
+
318
+/**
319
+ * BMap component extension
320
+ */
321
+
322
+echarts.registerCoordinateSystem('bmap', BMapCoordSys);
323
+
324
+// Action
325
+echarts.registerAction({
326
+    type: 'bmapRoam',
327
+    event: 'bmapRoam',
328
+    update: 'updateLayout'
329
+}, function (payload, ecModel) {
330
+    ecModel.eachComponent('bmap', function (bMapModel) {
331
+        var bmap = bMapModel.getBMap();
332
+        var center = bmap.getCenter();
333
+        bMapModel.setCenterAndZoom([center.lng, center.lat], bmap.getZoom());
334
+    });
335
+});
336
+
337
+var version = '1.0.0';
338
+
339
+exports.version = version;
340
+
341
+})));
342
+//# sourceMappingURL=bmap.js.map

Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 0
src/main/resources/static/bower_components/echarts/dist/extension/bmap.js.map


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 0
src/main/resources/static/bower_components/echarts/dist/extension/bmap.min.js


+ 758 - 0
src/main/resources/static/bower_components/echarts/dist/extension/dataTool.js

@@ -0,0 +1,758 @@
1
+(function (global, factory) {
2
+	typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('echarts')) :
3
+	typeof define === 'function' && define.amd ? define(['exports', 'echarts'], factory) :
4
+	(factory((global.dataTool = {}),global.echarts));
5
+}(this, (function (exports,echarts) { 'use strict';
6
+
7
+/**
8
+ * @module zrender/core/util
9
+ */
10
+
11
+// 用于处理merge时无法遍历Date等对象的问题
12
+var arrayProto = Array.prototype;
13
+var nativeMap = arrayProto.map;
14
+
15
+
16
+/**
17
+ * Those data types can be cloned:
18
+ *     Plain object, Array, TypedArray, number, string, null, undefined.
19
+ * Those data types will be assgined using the orginal data:
20
+ *     BUILTIN_OBJECT
21
+ * Instance of user defined class will be cloned to a plain object, without
22
+ * properties in prototype.
23
+ * Other data types is not supported (not sure what will happen).
24
+ *
25
+ * Caution: do not support clone Date, for performance consideration.
26
+ * (There might be a large number of date in `series.data`).
27
+ * So date should not be modified in and out of echarts.
28
+ *
29
+ * @param {*} source
30
+ * @return {*} new
31
+ */
32
+
33
+
34
+/**
35
+ * @memberOf module:zrender/core/util
36
+ * @param {*} target
37
+ * @param {*} source
38
+ * @param {boolean} [overwrite=false]
39
+ */
40
+
41
+
42
+/**
43
+ * @param {Array} targetAndSources The first item is target, and the rests are source.
44
+ * @param {boolean} [overwrite=false]
45
+ * @return {*} target
46
+ */
47
+
48
+
49
+/**
50
+ * @param {*} target
51
+ * @param {*} source
52
+ * @memberOf module:zrender/core/util
53
+ */
54
+
55
+
56
+/**
57
+ * @param {*} target
58
+ * @param {*} source
59
+ * @param {boolean} [overlay=false]
60
+ * @memberOf module:zrender/core/util
61
+ */
62
+
63
+
64
+
65
+
66
+
67
+
68
+/**
69
+ * 查询数组中元素的index
70
+ * @memberOf module:zrender/core/util
71
+ */
72
+
73
+
74
+/**
75
+ * 构造类继承关系
76
+ *
77
+ * @memberOf module:zrender/core/util
78
+ * @param {Function} clazz 源类
79
+ * @param {Function} baseClazz 基类
80
+ */
81
+
82
+
83
+/**
84
+ * @memberOf module:zrender/core/util
85
+ * @param {Object|Function} target
86
+ * @param {Object|Function} sorce
87
+ * @param {boolean} overlay
88
+ */
89
+
90
+
91
+/**
92
+ * Consider typed array.
93
+ * @param {Array|TypedArray} data
94
+ */
95
+
96
+
97
+/**
98
+ * 数组或对象遍历
99
+ * @memberOf module:zrender/core/util
100
+ * @param {Object|Array} obj
101
+ * @param {Function} cb
102
+ * @param {*} [context]
103
+ */
104
+
105
+
106
+/**
107
+ * 数组映射
108
+ * @memberOf module:zrender/core/util
109
+ * @param {Array} obj
110
+ * @param {Function} cb
111
+ * @param {*} [context]
112
+ * @return {Array}
113
+ */
114
+function map(obj, cb, context) {
115
+    if (!(obj && cb)) {
116
+        return;
117
+    }
118
+    if (obj.map && obj.map === nativeMap) {
119
+        return obj.map(cb, context);
120
+    }
121
+    else {
122
+        var result = [];
123
+        for (var i = 0, len = obj.length; i < len; i++) {
124
+            result.push(cb.call(context, obj[i], i, obj));
125
+        }
126
+        return result;
127
+    }
128
+}
129
+
130
+/**
131
+ * @memberOf module:zrender/core/util
132
+ * @param {Array} obj
133
+ * @param {Function} cb
134
+ * @param {Object} [memo]
135
+ * @param {*} [context]
136
+ * @return {Array}
137
+ */
138
+
139
+
140
+/**
141
+ * 数组过滤
142
+ * @memberOf module:zrender/core/util
143
+ * @param {Array} obj
144
+ * @param {Function} cb
145
+ * @param {*} [context]
146
+ * @return {Array}
147
+ */
148
+
149
+
150
+/**
151
+ * 数组项查找
152
+ * @memberOf module:zrender/core/util
153
+ * @param {Array} obj
154
+ * @param {Function} cb
155
+ * @param {*} [context]
156
+ * @return {*}
157
+ */
158
+
159
+
160
+/**
161
+ * @memberOf module:zrender/core/util
162
+ * @param {Function} func
163
+ * @param {*} context
164
+ * @return {Function}
165
+ */
166
+
167
+
168
+/**
169
+ * @memberOf module:zrender/core/util
170
+ * @param {Function} func
171
+ * @return {Function}
172
+ */
173
+
174
+
175
+/**
176
+ * @memberOf module:zrender/core/util
177
+ * @param {*} value
178
+ * @return {boolean}
179
+ */
180
+
181
+
182
+/**
183
+ * @memberOf module:zrender/core/util
184
+ * @param {*} value
185
+ * @return {boolean}
186
+ */
187
+
188
+
189
+/**
190
+ * @memberOf module:zrender/core/util
191
+ * @param {*} value
192
+ * @return {boolean}
193
+ */
194
+
195
+
196
+/**
197
+ * @memberOf module:zrender/core/util
198
+ * @param {*} value
199
+ * @return {boolean}
200
+ */
201
+
202
+
203
+/**
204
+ * @memberOf module:zrender/core/util
205
+ * @param {*} value
206
+ * @return {boolean}
207
+ */
208
+
209
+
210
+/**
211
+ * @memberOf module:zrender/core/util
212
+ * @param {*} value
213
+ * @return {boolean}
214
+ */
215
+
216
+
217
+/**
218
+ * Whether is exactly NaN. Notice isNaN('a') returns true.
219
+ * @param {*} value
220
+ * @return {boolean}
221
+ */
222
+
223
+
224
+/**
225
+ * If value1 is not null, then return value1, otherwise judget rest of values.
226
+ * Low performance.
227
+ * @memberOf module:zrender/core/util
228
+ * @return {*} Final value
229
+ */
230
+
231
+
232
+
233
+
234
+
235
+
236
+/**
237
+ * @memberOf module:zrender/core/util
238
+ * @param {Array} arr
239
+ * @param {number} startIndex
240
+ * @param {number} endIndex
241
+ * @return {Array}
242
+ */
243
+
244
+
245
+/**
246
+ * Normalize css liked array configuration
247
+ * e.g.
248
+ *  3 => [3, 3, 3, 3]
249
+ *  [4, 2] => [4, 2, 4, 2]
250
+ *  [4, 3, 2] => [4, 3, 2, 3]
251
+ * @param {number|Array.<number>} val
252
+ * @return {Array.<number>}
253
+ */
254
+
255
+
256
+/**
257
+ * @memberOf module:zrender/core/util
258
+ * @param {boolean} condition
259
+ * @param {string} message
260
+ */
261
+
262
+
263
+/**
264
+ * Set an object as primitive to be ignored traversing children in clone or merge
265
+ */
266
+
267
+// GEXF File Parser
268
+// http://gexf.net/1.2draft/gexf-12draft-primer.pdf
269
+
270
+function parse(xml) {
271
+    var doc;
272
+    if (typeof xml === 'string') {
273
+        var parser = new DOMParser();
274
+        doc = parser.parseFromString(xml, 'text/xml');
275
+    }
276
+    else {
277
+        doc = xml;
278
+    }
279
+    if (!doc || doc.getElementsByTagName('parsererror').length) {
280
+        return null;
281
+    }
282
+
283
+    var gexfRoot = getChildByTagName(doc, 'gexf');
284
+
285
+    if (!gexfRoot) {
286
+        return null;
287
+    }
288
+
289
+    var graphRoot = getChildByTagName(gexfRoot, 'graph');
290
+
291
+    var attributes = parseAttributes(getChildByTagName(graphRoot, 'attributes'));
292
+    var attributesMap = {};
293
+    for (var i = 0; i < attributes.length; i++) {
294
+        attributesMap[attributes[i].id] = attributes[i];
295
+    }
296
+
297
+    return {
298
+        nodes: parseNodes(getChildByTagName(graphRoot, 'nodes'), attributesMap),
299
+        links: parseEdges(getChildByTagName(graphRoot, 'edges'))
300
+    };
301
+}
302
+
303
+function parseAttributes(parent) {
304
+    return parent ? map(getChildrenByTagName(parent, 'attribute'), function (attribDom) {
305
+        return {
306
+            id: getAttr(attribDom, 'id'),
307
+            title: getAttr(attribDom, 'title'),
308
+            type: getAttr(attribDom, 'type')
309
+        };
310
+    }) : [];
311
+}
312
+
313
+function parseNodes(parent, attributesMap) {
314
+    return parent ? map(getChildrenByTagName(parent, 'node'), function (nodeDom) {
315
+
316
+        var id = getAttr(nodeDom, 'id');
317
+        var label = getAttr(nodeDom, 'label');
318
+
319
+        var node = {
320
+            id: id,
321
+            name: label,
322
+            itemStyle: {
323
+                normal: {}
324
+            }
325
+        };
326
+
327
+        var vizSizeDom = getChildByTagName(nodeDom, 'viz:size');
328
+        var vizPosDom = getChildByTagName(nodeDom, 'viz:position');
329
+        var vizColorDom = getChildByTagName(nodeDom, 'viz:color');
330
+        // var vizShapeDom = getChildByTagName(nodeDom, 'viz:shape');
331
+
332
+        var attvaluesDom = getChildByTagName(nodeDom, 'attvalues');
333
+
334
+        if (vizSizeDom) {
335
+            node.symbolSize = parseFloat(getAttr(vizSizeDom, 'value'));
336
+        }
337
+        if (vizPosDom) {
338
+            node.x = parseFloat(getAttr(vizPosDom, 'x'));
339
+            node.y = parseFloat(getAttr(vizPosDom, 'y'));
340
+            // z
341
+        }
342
+        if (vizColorDom) {
343
+            node.itemStyle.normal.color = 'rgb(' +[
344
+                getAttr(vizColorDom, 'r') | 0,
345
+                getAttr(vizColorDom, 'g') | 0,
346
+                getAttr(vizColorDom, 'b') | 0
347
+            ].join(',') + ')';
348
+        }
349
+        // if (vizShapeDom) {
350
+            // node.shape = getAttr(vizShapeDom, 'shape');
351
+        // }
352
+        if (attvaluesDom) {
353
+            var attvalueDomList = getChildrenByTagName(attvaluesDom, 'attvalue');
354
+
355
+            node.attributes = {};
356
+
357
+            for (var j = 0; j < attvalueDomList.length; j++) {
358
+                var attvalueDom = attvalueDomList[j];
359
+                var attId = getAttr(attvalueDom, 'for');
360
+                var attValue = getAttr(attvalueDom, 'value');
361
+                var attribute = attributesMap[attId];
362
+
363
+                if (attribute) {
364
+                    switch (attribute.type) {
365
+                        case 'integer':
366
+                        case 'long':
367
+                            attValue = parseInt(attValue, 10);
368
+                            break;
369
+                        case 'float':
370
+                        case 'double':
371
+                            attValue = parseFloat(attValue);
372
+                            break;
373
+                        case 'boolean':
374
+                            attValue = attValue.toLowerCase() == 'true';
375
+                            break;
376
+                        default:
377
+                    }
378
+                    node.attributes[attId] = attValue;
379
+                }
380
+            }
381
+        }
382
+
383
+        return node;
384
+    }) : [];
385
+}
386
+
387
+function parseEdges(parent) {
388
+    return parent ? map(getChildrenByTagName(parent, 'edge'), function (edgeDom) {
389
+        var id = getAttr(edgeDom, 'id');
390
+        var label = getAttr(edgeDom, 'label');
391
+
392
+        var sourceId = getAttr(edgeDom, 'source');
393
+        var targetId = getAttr(edgeDom, 'target');
394
+
395
+        var edge = {
396
+            id: id,
397
+            name: label,
398
+            source: sourceId,
399
+            target: targetId,
400
+            lineStyle: {
401
+                normal: {}
402
+            }
403
+        };
404
+
405
+        var lineStyle = edge.lineStyle.normal;
406
+
407
+        var vizThicknessDom = getChildByTagName(edgeDom, 'viz:thickness');
408
+        var vizColorDom = getChildByTagName(edgeDom, 'viz:color');
409
+        // var vizShapeDom = getChildByTagName(edgeDom, 'viz:shape');
410
+
411
+        if (vizThicknessDom) {
412
+            lineStyle.width = parseFloat(vizThicknessDom.getAttribute('value'));
413
+        }
414
+        if (vizColorDom) {
415
+            lineStyle.color = 'rgb(' + [
416
+                getAttr(vizColorDom, 'r') | 0,
417
+                getAttr(vizColorDom, 'g') | 0,
418
+                getAttr(vizColorDom, 'b') | 0
419
+            ].join(',') + ')';
420
+        }
421
+        // if (vizShapeDom) {
422
+        //     edge.shape = vizShapeDom.getAttribute('shape');
423
+        // }
424
+
425
+        return edge;
426
+    }) : [];
427
+}
428
+
429
+function getAttr(el, attrName) {
430
+    return el.getAttribute(attrName);
431
+}
432
+
433
+function getChildByTagName (parent, tagName) {
434
+    var node = parent.firstChild;
435
+
436
+    while (node) {
437
+        if (
438
+            node.nodeType != 1 ||
439
+            node.nodeName.toLowerCase() != tagName.toLowerCase()
440
+        ) {
441
+            node = node.nextSibling;
442
+        } else {
443
+            return node;
444
+        }
445
+    }
446
+
447
+    return null;
448
+}
449
+
450
+function getChildrenByTagName (parent, tagName) {
451
+    var node = parent.firstChild;
452
+    var children = [];
453
+    while (node) {
454
+        if (node.nodeName.toLowerCase() == tagName.toLowerCase()) {
455
+            children.push(node);
456
+        }
457
+        node = node.nextSibling;
458
+    }
459
+
460
+    return children;
461
+}
462
+
463
+
464
+var gexf = (Object.freeze || Object)({
465
+	parse: parse
466
+});
467
+
468
+/**
469
+ * Copyright (c) 2010-2015, Michael Bostock
470
+ * All rights reserved.
471
+ *
472
+ * Redistribution and use in source and binary forms, with or without
473
+ * modification, are permitted provided that the following conditions are met:
474
+ *
475
+ * * Redistributions of source code must retain the above copyright notice, this
476
+ *   list of conditions and the following disclaimer.
477
+ *
478
+ * * Redistributions in binary form must reproduce the above copyright notice,
479
+ *   this list of conditions and the following disclaimer in the documentation
480
+ *   and/or other materials provided with the distribution.
481
+ *
482
+ * * The name Michael Bostock may not be used to endorse or promote products
483
+ *   derived from this software without specific prior written permission.
484
+ *
485
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
486
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
487
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
488
+ * DISCLAIMED. IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY DIRECT,
489
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
490
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
491
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
492
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
493
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
494
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
495
+ */
496
+
497
+/**
498
+ * @see <https://github.com/mbostock/d3/blob/master/src/arrays/quantile.js>
499
+ * @see <http://en.wikipedia.org/wiki/Quantile>
500
+ * @param {Array.<number>} ascArr
501
+ */
502
+var quantile = function(ascArr, p) {
503
+    var H = (ascArr.length - 1) * p + 1,
504
+        h = Math.floor(H),
505
+        v = +ascArr[h - 1],
506
+        e = H - h;
507
+    return e ? v + e * (ascArr[h] - v) : v;
508
+};
509
+
510
+/**
511
+ * Linear mapping a value from domain to range
512
+ * @memberOf module:echarts/util/number
513
+ * @param  {(number|Array.<number>)} val
514
+ * @param  {Array.<number>} domain Domain extent domain[0] can be bigger than domain[1]
515
+ * @param  {Array.<number>} range  Range extent range[0] can be bigger than range[1]
516
+ * @param  {boolean} clamp
517
+ * @return {(number|Array.<number>}
518
+ */
519
+
520
+
521
+/**
522
+ * Convert a percent string to absolute number.
523
+ * Returns NaN if percent is not a valid string or number
524
+ * @memberOf module:echarts/util/number
525
+ * @param {string|number} percent
526
+ * @param {number} all
527
+ * @return {number}
528
+ */
529
+
530
+
531
+/**
532
+ * (1) Fix rounding error of float numbers.
533
+ * (2) Support return string to avoid scientific notation like '3.5e-7'.
534
+ *
535
+ * @param {number} x
536
+ * @param {number} [precision]
537
+ * @param {boolean} [returnStr]
538
+ * @return {number|string}
539
+ */
540
+
541
+
542
+function asc(arr) {
543
+    arr.sort(function (a, b) {
544
+        return a - b;
545
+    });
546
+    return arr;
547
+}
548
+
549
+/**
550
+ * Get precision
551
+ * @param {number} val
552
+ */
553
+
554
+
555
+/**
556
+ * @param {string|number} val
557
+ * @return {number}
558
+ */
559
+
560
+
561
+/**
562
+ * Minimal dicernible data precisioin according to a single pixel.
563
+ *
564
+ * @param {Array.<number>} dataExtent
565
+ * @param {Array.<number>} pixelExtent
566
+ * @return {number} precision
567
+ */
568
+
569
+
570
+/**
571
+ * Get a data of given precision, assuring the sum of percentages
572
+ * in valueList is 1.
573
+ * The largest remainer method is used.
574
+ * https://en.wikipedia.org/wiki/Largest_remainder_method
575
+ *
576
+ * @param {Array.<number>} valueList a list of all data
577
+ * @param {number} idx index of the data to be processed in valueList
578
+ * @param {number} precision integer number showing digits of precision
579
+ * @return {number} percent ranging from 0 to 100
580
+ */
581
+
582
+
583
+// Number.MAX_SAFE_INTEGER, ie do not support.
584
+
585
+
586
+/**
587
+ * To 0 - 2 * PI, considering negative radian.
588
+ * @param {number} radian
589
+ * @return {number}
590
+ */
591
+
592
+
593
+/**
594
+ * @param {type} radian
595
+ * @return {boolean}
596
+ */
597
+
598
+
599
+/**
600
+ * @param {string|Date|number} value These values can be accepted:
601
+ *   + An instance of Date, represent a time in its own time zone.
602
+ *   + Or string in a subset of ISO 8601, only including:
603
+ *     + only year, month, date: '2012-03', '2012-03-01', '2012-03-01 05', '2012-03-01 05:06',
604
+ *     + separated with T or space: '2012-03-01T12:22:33.123', '2012-03-01 12:22:33.123',
605
+ *     + time zone: '2012-03-01T12:22:33Z', '2012-03-01T12:22:33+8000', '2012-03-01T12:22:33-05:00',
606
+ *     all of which will be treated as local time if time zone is not specified
607
+ *     (see <https://momentjs.com/>).
608
+ *   + Or other string format, including (all of which will be treated as loacal time):
609
+ *     '2012', '2012-3-1', '2012/3/1', '2012/03/01',
610
+ *     '2009/6/12 2:00', '2009/6/12 2:05:08', '2009/6/12 2:05:08.123'
611
+ *   + a timestamp, which represent a time in UTC.
612
+ * @return {Date} date
613
+ */
614
+
615
+
616
+/**
617
+ * Quantity of a number. e.g. 0.1, 1, 10, 100
618
+ *
619
+ * @param  {number} val
620
+ * @return {number}
621
+ */
622
+
623
+
624
+/**
625
+ * find a “nice” number approximately equal to x. Round the number if round = true,
626
+ * take ceiling if round = false. The primary observation is that the “nicest”
627
+ * numbers in decimal are 1, 2, and 5, and all power-of-ten multiples of these numbers.
628
+ *
629
+ * See "Nice Numbers for Graph Labels" of Graphic Gems.
630
+ *
631
+ * @param  {number} val Non-negative value.
632
+ * @param  {boolean} round
633
+ * @return {number}
634
+ */
635
+
636
+
637
+/**
638
+ * Order intervals asc, and split them when overlap.
639
+ * expect(numberUtil.reformIntervals([
640
+ *     {interval: [18, 62], close: [1, 1]},
641
+ *     {interval: [-Infinity, -70], close: [0, 0]},
642
+ *     {interval: [-70, -26], close: [1, 1]},
643
+ *     {interval: [-26, 18], close: [1, 1]},
644
+ *     {interval: [62, 150], close: [1, 1]},
645
+ *     {interval: [106, 150], close: [1, 1]},
646
+ *     {interval: [150, Infinity], close: [0, 0]}
647
+ * ])).toEqual([
648
+ *     {interval: [-Infinity, -70], close: [0, 0]},
649
+ *     {interval: [-70, -26], close: [1, 1]},
650
+ *     {interval: [-26, 18], close: [0, 1]},
651
+ *     {interval: [18, 62], close: [0, 1]},
652
+ *     {interval: [62, 150], close: [0, 1]},
653
+ *     {interval: [150, Infinity], close: [0, 0]}
654
+ * ]);
655
+ * @param {Array.<Object>} list, where `close` mean open or close
656
+ *        of the interval, and Infinity can be used.
657
+ * @return {Array.<Object>} The origin list, which has been reformed.
658
+ */
659
+
660
+
661
+/**
662
+ * parseFloat NaNs numeric-cast false positives (null|true|false|"")
663
+ * ...but misinterprets leading-number strings, particularly hex literals ("0x...")
664
+ * subtraction forces infinities to NaN
665
+ *
666
+ * @param {*} v
667
+ * @return {boolean}
668
+ */
669
+
670
+/**
671
+ * See:
672
+ *  <https://en.wikipedia.org/wiki/Box_plot#cite_note-frigge_hoaglin_iglewicz-2>
673
+ *  <http://stat.ethz.ch/R-manual/R-devel/library/grDevices/html/boxplot.stats.html>
674
+ *
675
+ * Helper method for preparing data.
676
+ *
677
+ * @param {Array.<number>} rawData like
678
+ *        [
679
+ *            [12,232,443], (raw data set for the first box)
680
+ *            [3843,5545,1232], (raw datat set for the second box)
681
+ *            ...
682
+ *        ]
683
+ * @param {Object} [opt]
684
+ *
685
+ * @param {(number|string)} [opt.boundIQR=1.5] Data less than min bound is outlier.
686
+ *      default 1.5, means Q1 - 1.5 * (Q3 - Q1).
687
+ *      If 'none'/0 passed, min bound will not be used.
688
+ * @param {(number|string)} [opt.layout='horizontal']
689
+ *      Box plot layout, can be 'horizontal' or 'vertical'
690
+ * @return {Object} {
691
+ *      boxData: Array.<Array.<number>>
692
+ *      outliers: Array.<Array.<number>>
693
+ *      axisData: Array.<string>
694
+ * }
695
+ */
696
+var prepareBoxplotData = function (rawData, opt) {
697
+    opt = opt || [];
698
+    var boxData = [];
699
+    var outliers = [];
700
+    var axisData = [];
701
+    var boundIQR = opt.boundIQR;
702
+    var useExtreme = boundIQR === 'none' || boundIQR === 0;
703
+
704
+    for (var i = 0; i < rawData.length; i++) {
705
+        axisData.push(i + '');
706
+        var ascList = asc(rawData[i].slice());
707
+
708
+        var Q1 = quantile(ascList, 0.25);
709
+        var Q2 = quantile(ascList, 0.5);
710
+        var Q3 = quantile(ascList, 0.75);
711
+        var min = ascList[0];
712
+        var max = ascList[ascList.length - 1];
713
+
714
+        var bound = (boundIQR == null ? 1.5 : boundIQR) * (Q3 - Q1);
715
+
716
+        var low = useExtreme
717
+            ? min
718
+            : Math.max(min, Q1 - bound);
719
+        var high = useExtreme
720
+            ? max
721
+            : Math.min(max, Q3 + bound);
722
+
723
+        boxData.push([low, Q1, Q2, Q3, high]);
724
+
725
+        for (var j = 0; j < ascList.length; j++) {
726
+            var dataItem = ascList[j];
727
+            if (dataItem < low || dataItem > high) {
728
+                var outlier = [i, dataItem];
729
+                opt.layout === 'vertical' && outlier.reverse();
730
+                outliers.push(outlier);
731
+            }
732
+        }
733
+    }
734
+    return {
735
+        boxData: boxData,
736
+        outliers: outliers,
737
+        axisData: axisData
738
+    };
739
+};
740
+
741
+var version = '1.0.0';
742
+
743
+// For backward compatibility, where the namespace `dataTool` will
744
+// be mounted on `echarts` is the extension `dataTool` is imported.
745
+// But the old version of echarts do not have `dataTool` namespace,
746
+// so check it before mounting.
747
+if (echarts.dataTool) {
748
+    echarts.dataTool.version = version;
749
+    echarts.dataTool.gexf = gexf;
750
+    echarts.dataTool.prepareBoxplotData = prepareBoxplotData;
751
+}
752
+
753
+exports.version = version;
754
+exports.gexf = gexf;
755
+exports.prepareBoxplotData = prepareBoxplotData;
756
+
757
+})));
758
+//# sourceMappingURL=dataTool.js.map

Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 0
src/main/resources/static/bower_components/echarts/dist/extension/dataTool.js.map


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 0
src/main/resources/static/bower_components/echarts/dist/extension/dataTool.min.js


+ 53 - 0
src/main/resources/static/bower_components/echarts/echarts.all.js

@@ -0,0 +1,53 @@
1
+export * from './src/echarts';
2
+export * from './src/export';
3
+
4
+// Import all charts and components
5
+import './src/chart/line';
6
+import './src/chart/bar';
7
+import './src/chart/pie';
8
+import './src/chart/scatter';
9
+import './src/chart/radar';
10
+
11
+import './src/chart/map';
12
+import './src/chart/tree';
13
+import './src/chart/treemap';
14
+import './src/chart/graph';
15
+import './src/chart/gauge';
16
+import './src/chart/funnel';
17
+import './src/chart/parallel';
18
+import './src/chart/sankey';
19
+import './src/chart/boxplot';
20
+import './src/chart/candlestick';
21
+import './src/chart/effectScatter';
22
+import './src/chart/lines';
23
+import './src/chart/heatmap';
24
+import './src/chart/pictorialBar';
25
+import './src/chart/themeRiver';
26
+import './src/chart/custom';
27
+
28
+import './src/component/graphic';
29
+import './src/component/grid';
30
+import './src/component/legendScroll';
31
+import './src/component/tooltip';
32
+import './src/component/axisPointer';
33
+import './src/component/polar';
34
+import './src/component/geo';
35
+import './src/component/parallel';
36
+import './src/component/singleAxis';
37
+import './src/component/brush';
38
+import './src/component/calendar';
39
+
40
+import './src/component/title';
41
+
42
+import './src/component/dataZoom';
43
+import './src/component/visualMap';
44
+
45
+import './src/component/markPoint';
46
+import './src/component/markLine';
47
+import './src/component/markArea';
48
+
49
+import './src/component/timeline';
50
+import './src/component/toolbox';
51
+
52
+import 'zrender/src/vml/vml';
53
+import 'zrender/src/svg/svg';

+ 2 - 0
src/main/resources/static/bower_components/echarts/echarts.blank.js

@@ -0,0 +1,2 @@
1
+export * from './src/echarts';
2
+export * from './src/export';

+ 23 - 0
src/main/resources/static/bower_components/echarts/echarts.common.js

@@ -0,0 +1,23 @@
1
+export * from './src/echarts';
2
+export * from './src/export';
3
+
4
+import './src/chart/line';
5
+import './src/chart/bar';
6
+import './src/chart/pie';
7
+import './src/chart/scatter';
8
+import './src/component/graphic';
9
+import './src/component/tooltip';
10
+import './src/component/axisPointer';
11
+import './src/component/legendScroll';
12
+
13
+import './src/component/grid';
14
+import './src/component/title';
15
+
16
+import './src/component/markPoint';
17
+import './src/component/markLine';
18
+import './src/component/markArea';
19
+import './src/component/dataZoom';
20
+import './src/component/toolbox';
21
+
22
+import 'zrender/src/vml/vml';
23
+import 'zrender/src/svg/svg';

+ 6 - 0
src/main/resources/static/bower_components/echarts/echarts.simple.js

@@ -0,0 +1,6 @@
1
+export * from './src/echarts';
2
+
3
+import './src/chart/line';
4
+import './src/chart/bar';
5
+import './src/chart/pie';
6
+import './src/component/gridSimple';

+ 199 - 0
src/main/resources/static/bower_components/echarts/extension-src/bmap/BMapCoordSys.js

@@ -0,0 +1,199 @@
1
+/* global BMap */
2
+
3
+import {
4
+    util as zrUtil,
5
+    graphic,
6
+    matrix
7
+} from 'echarts';
8
+
9
+function BMapCoordSys(bmap, api) {
10
+    this._bmap = bmap;
11
+    this.dimensions = ['lng', 'lat'];
12
+    this._mapOffset = [0, 0];
13
+
14
+    this._api = api;
15
+
16
+    this._projection = new BMap.MercatorProjection();
17
+}
18
+
19
+BMapCoordSys.prototype.dimensions = ['lng', 'lat'];
20
+
21
+BMapCoordSys.prototype.setZoom = function (zoom) {
22
+    this._zoom = zoom;
23
+};
24
+
25
+BMapCoordSys.prototype.setCenter = function (center) {
26
+    this._center = this._projection.lngLatToPoint(new BMap.Point(center[0], center[1]));
27
+};
28
+
29
+BMapCoordSys.prototype.setMapOffset = function (mapOffset) {
30
+    this._mapOffset = mapOffset;
31
+};
32
+
33
+BMapCoordSys.prototype.getBMap = function () {
34
+    return this._bmap;
35
+};
36
+
37
+BMapCoordSys.prototype.dataToPoint = function (data) {
38
+    var point = new BMap.Point(data[0], data[1]);
39
+    // TODO mercator projection is toooooooo slow
40
+    // var mercatorPoint = this._projection.lngLatToPoint(point);
41
+
42
+    // var width = this._api.getZr().getWidth();
43
+    // var height = this._api.getZr().getHeight();
44
+    // var divider = Math.pow(2, 18 - 10);
45
+    // return [
46
+    //     Math.round((mercatorPoint.x - this._center.x) / divider + width / 2),
47
+    //     Math.round((this._center.y - mercatorPoint.y) / divider + height / 2)
48
+    // ];
49
+    var px = this._bmap.pointToOverlayPixel(point);
50
+    var mapOffset = this._mapOffset;
51
+    return [px.x - mapOffset[0], px.y - mapOffset[1]];
52
+};
53
+
54
+BMapCoordSys.prototype.pointToData = function (pt) {
55
+    var mapOffset = this._mapOffset;
56
+    var pt = this._bmap.overlayPixelToPoint({
57
+        x: pt[0] + mapOffset[0],
58
+        y: pt[1] + mapOffset[1]
59
+    });
60
+    return [pt.lng, pt.lat];
61
+};
62
+
63
+BMapCoordSys.prototype.getViewRect = function () {
64
+    var api = this._api;
65
+    return new graphic.BoundingRect(0, 0, api.getWidth(), api.getHeight());
66
+};
67
+
68
+BMapCoordSys.prototype.getRoamTransform = function () {
69
+    return matrix.create();
70
+};
71
+
72
+BMapCoordSys.prototype.prepareCustoms = function (data) {
73
+    var rect = this.getViewRect();
74
+    return {
75
+        coordSys: {
76
+            // The name exposed to user is always 'cartesian2d' but not 'grid'.
77
+            type: 'bmap',
78
+            x: rect.x,
79
+            y: rect.y,
80
+            width: rect.width,
81
+            height: rect.height
82
+        },
83
+        api: {
84
+            coord: zrUtil.bind(this.dataToPoint, this),
85
+            size: zrUtil.bind(dataToCoordSize, this)
86
+        }
87
+    };
88
+};
89
+
90
+function dataToCoordSize(dataSize, dataItem) {
91
+    dataItem = dataItem || [0, 0];
92
+    return zrUtil.map([0, 1], function (dimIdx) {
93
+        var val = dataItem[dimIdx];
94
+        var halfSize = dataSize[dimIdx] / 2;
95
+        var p1 = [];
96
+        var p2 = [];
97
+        p1[dimIdx] = val - halfSize;
98
+        p2[dimIdx] = val + halfSize;
99
+        p1[1 - dimIdx] = p2[1 - dimIdx] = dataItem[1 - dimIdx];
100
+        return Math.abs(this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx]);
101
+    }, this);
102
+}
103
+
104
+var Overlay;
105
+
106
+// For deciding which dimensions to use when creating list data
107
+BMapCoordSys.dimensions = BMapCoordSys.prototype.dimensions;
108
+
109
+function createOverlayCtor() {
110
+    function Overlay(root) {
111
+        this._root = root;
112
+    }
113
+
114
+    Overlay.prototype = new BMap.Overlay();
115
+    /**
116
+     * 初始化
117
+     *
118
+     * @param {BMap.Map} map
119
+     * @override
120
+     */
121
+    Overlay.prototype.initialize = function (map) {
122
+        map.getPanes().labelPane.appendChild(this._root);
123
+        return this._root;
124
+    };
125
+    /**
126
+     * @override
127
+     */
128
+    Overlay.prototype.draw = function () {};
129
+
130
+    return Overlay;
131
+}
132
+
133
+BMapCoordSys.create = function (ecModel, api) {
134
+    var bmapCoordSys;
135
+    var root = api.getDom();
136
+
137
+    // TODO Dispose
138
+    ecModel.eachComponent('bmap', function (bmapModel) {
139
+        var painter = api.getZr().painter;
140
+        var viewportRoot = painter.getViewportRoot();
141
+        if (typeof BMap === 'undefined') {
142
+            throw new Error('BMap api is not loaded');
143
+        }
144
+        Overlay = Overlay || createOverlayCtor();
145
+        if (bmapCoordSys) {
146
+            throw new Error('Only one bmap component can exist');
147
+        }
148
+        if (!bmapModel.__bmap) {
149
+            // Not support IE8
150
+            var bmapRoot = root.querySelector('.ec-extension-bmap');
151
+            if (bmapRoot) {
152
+                // Reset viewport left and top, which will be changed
153
+                // in moving handler in BMapView
154
+                viewportRoot.style.left = '0px';
155
+                viewportRoot.style.top = '0px';
156
+                root.removeChild(bmapRoot);
157
+            }
158
+            bmapRoot = document.createElement('div');
159
+            bmapRoot.style.cssText = 'width:100%;height:100%';
160
+            // Not support IE8
161
+            bmapRoot.classList.add('ec-extension-bmap');
162
+            root.appendChild(bmapRoot);
163
+            var bmap = bmapModel.__bmap = new BMap.Map(bmapRoot);
164
+
165
+            var overlay = new Overlay(viewportRoot);
166
+            bmap.addOverlay(overlay);
167
+
168
+            // Override
169
+            painter.getViewportRootOffset = function () {
170
+                return {offsetLeft: 0, offsetTop: 0};
171
+            };
172
+        }
173
+        var bmap = bmapModel.__bmap;
174
+
175
+        // Set bmap options
176
+        // centerAndZoom before layout and render
177
+        var center = bmapModel.get('center');
178
+        var zoom = bmapModel.get('zoom');
179
+        if (center && zoom) {
180
+            var pt = new BMap.Point(center[0], center[1]);
181
+            bmap.centerAndZoom(pt, zoom);
182
+        }
183
+
184
+        bmapCoordSys = new BMapCoordSys(bmap, api);
185
+        bmapCoordSys.setMapOffset(bmapModel.__mapOffset || [0, 0]);
186
+        bmapCoordSys.setZoom(zoom);
187
+        bmapCoordSys.setCenter(center);
188
+
189
+        bmapModel.coordinateSystem = bmapCoordSys;
190
+    });
191
+
192
+    ecModel.eachSeries(function (seriesModel) {
193
+        if (seriesModel.get('coordinateSystem') === 'bmap') {
194
+            seriesModel.coordinateSystem = bmapCoordSys;
195
+        }
196
+    });
197
+};
198
+
199
+export default BMapCoordSys;

+ 35 - 0
src/main/resources/static/bower_components/echarts/extension-src/bmap/BMapModel.js

@@ -0,0 +1,35 @@
1
+import * as echarts from 'echarts';
2
+
3
+function v2Equal(a, b) {
4
+    return a && b && a[0] === b[0] && a[1] === b[1];
5
+}
6
+
7
+export default echarts.extendComponentModel({
8
+    type: 'bmap',
9
+
10
+    getBMap: function () {
11
+        // __bmap is injected when creating BMapCoordSys
12
+        return this.__bmap;
13
+    },
14
+
15
+    setCenterAndZoom: function (center, zoom) {
16
+        this.option.center = center;
17
+        this.option.zoom = zoom;
18
+    },
19
+
20
+    centerOrZoomChanged: function (center, zoom) {
21
+        var option = this.option;
22
+        return !(v2Equal(center, option.center) && zoom === option.zoom);
23
+    },
24
+
25
+    defaultOption: {
26
+
27
+        center: [104.114129, 37.550339],
28
+
29
+        zoom: 5,
30
+
31
+        mapStyle: {},
32
+
33
+        roam: false
34
+    }
35
+});

+ 86 - 0
src/main/resources/static/bower_components/echarts/extension-src/bmap/BMapView.js

@@ -0,0 +1,86 @@
1
+import * as echarts from 'echarts';
2
+
3
+export default echarts.extendComponentView({
4
+    type: 'bmap',
5
+
6
+    render: function (bMapModel, ecModel, api) {
7
+        var rendering = true;
8
+
9
+        var bmap = bMapModel.getBMap();
10
+        var viewportRoot = api.getZr().painter.getViewportRoot();
11
+        var coordSys = bMapModel.coordinateSystem;
12
+        var moveHandler = function (type, target) {
13
+            if (rendering) {
14
+                return;
15
+            }
16
+            var offsetEl = viewportRoot.parentNode.parentNode.parentNode;
17
+            var mapOffset = [
18
+                -parseInt(offsetEl.style.left, 10) || 0,
19
+                -parseInt(offsetEl.style.top, 10) || 0
20
+            ];
21
+            viewportRoot.style.left = mapOffset[0] + 'px';
22
+            viewportRoot.style.top = mapOffset[1] + 'px';
23
+
24
+            coordSys.setMapOffset(mapOffset);
25
+            bMapModel.__mapOffset = mapOffset;
26
+
27
+            api.dispatchAction({
28
+                type: 'bmapRoam'
29
+            });
30
+        };
31
+
32
+        function zoomEndHandler() {
33
+            if (rendering) {
34
+                return;
35
+            }
36
+            api.dispatchAction({
37
+                type: 'bmapRoam'
38
+            });
39
+        }
40
+
41
+        bmap.removeEventListener('moving', this._oldMoveHandler);
42
+        // FIXME
43
+        // Moveend may be triggered by centerAndZoom method when creating coordSys next time
44
+        // bmap.removeEventListener('moveend', this._oldMoveHandler);
45
+        bmap.removeEventListener('zoomend', this._oldZoomEndHandler);
46
+        bmap.addEventListener('moving', moveHandler);
47
+        // bmap.addEventListener('moveend', moveHandler);
48
+        bmap.addEventListener('zoomend', zoomEndHandler);
49
+
50
+        this._oldMoveHandler = moveHandler;
51
+        this._oldZoomEndHandler = zoomEndHandler;
52
+
53
+        var roam = bMapModel.get('roam');
54
+        if (roam && roam !== 'scale') {
55
+            bmap.enableDragging();
56
+        }
57
+        else {
58
+            bmap.disableDragging();
59
+        }
60
+        if (roam && roam !== 'move') {
61
+            bmap.enableScrollWheelZoom();
62
+            bmap.enableDoubleClickZoom();
63
+            bmap.enablePinchToZoom();
64
+        }
65
+        else {
66
+            bmap.disableScrollWheelZoom();
67
+            bmap.disableDoubleClickZoom();
68
+            bmap.disablePinchToZoom();
69
+        }
70
+
71
+        var originalStyle = bMapModel.__mapStyle;
72
+
73
+        var newMapStyle = bMapModel.get('mapStyle') || {};
74
+        // FIXME, Not use JSON methods
75
+        var mapStyleStr = JSON.stringify(newMapStyle);
76
+        if (JSON.stringify(originalStyle) !== mapStyleStr) {
77
+            // FIXME May have blank tile when dragging if setMapStyle
78
+            if (Object.keys(newMapStyle).length) {
79
+                bmap.setMapStyle(newMapStyle);
80
+            }
81
+            bMapModel.__mapStyle = JSON.parse(mapStyleStr);
82
+        }
83
+
84
+        rendering = false;
85
+    }
86
+});

+ 26 - 0
src/main/resources/static/bower_components/echarts/extension-src/bmap/bmap.js

@@ -0,0 +1,26 @@
1
+/**
2
+ * BMap component extension
3
+ */
4
+
5
+import * as echarts from 'echarts';
6
+import BMapCoordSys from './BMapCoordSys';
7
+
8
+import './BMapModel';
9
+import './BMapView';
10
+
11
+echarts.registerCoordinateSystem('bmap', BMapCoordSys);
12
+
13
+// Action
14
+echarts.registerAction({
15
+    type: 'bmapRoam',
16
+    event: 'bmapRoam',
17
+    update: 'updateLayout'
18
+}, function (payload, ecModel) {
19
+    ecModel.eachComponent('bmap', function (bMapModel) {
20
+        var bmap = bMapModel.getBMap();
21
+        var center = bmap.getCenter();
22
+        bMapModel.setCenterAndZoom([center.lng, center.lat], bmap.getZoom());
23
+    });
24
+});
25
+
26
+export var version = '1.0.0';

+ 197 - 0
src/main/resources/static/bower_components/echarts/extension-src/dataTool/gexf.js

@@ -0,0 +1,197 @@
1
+// GEXF File Parser
2
+// http://gexf.net/1.2draft/gexf-12draft-primer.pdf
3
+
4
+import * as zrUtil from 'zrender/src/core/util';
5
+
6
+export function parse(xml) {
7
+    var doc;
8
+    if (typeof xml === 'string') {
9
+        var parser = new DOMParser();
10
+        doc = parser.parseFromString(xml, 'text/xml');
11
+    }
12
+    else {
13
+        doc = xml;
14
+    }
15
+    if (!doc || doc.getElementsByTagName('parsererror').length) {
16
+        return null;
17
+    }
18
+
19
+    var gexfRoot = getChildByTagName(doc, 'gexf');
20
+
21
+    if (!gexfRoot) {
22
+        return null;
23
+    }
24
+
25
+    var graphRoot = getChildByTagName(gexfRoot, 'graph');
26
+
27
+    var attributes = parseAttributes(getChildByTagName(graphRoot, 'attributes'));
28
+    var attributesMap = {};
29
+    for (var i = 0; i < attributes.length; i++) {
30
+        attributesMap[attributes[i].id] = attributes[i];
31
+    }
32
+
33
+    return {
34
+        nodes: parseNodes(getChildByTagName(graphRoot, 'nodes'), attributesMap),
35
+        links: parseEdges(getChildByTagName(graphRoot, 'edges'))
36
+    };
37
+}
38
+
39
+function parseAttributes(parent) {
40
+    return parent ? zrUtil.map(getChildrenByTagName(parent, 'attribute'), function (attribDom) {
41
+        return {
42
+            id: getAttr(attribDom, 'id'),
43
+            title: getAttr(attribDom, 'title'),
44
+            type: getAttr(attribDom, 'type')
45
+        };
46
+    }) : [];
47
+}
48
+
49
+function parseNodes(parent, attributesMap) {
50
+    return parent ? zrUtil.map(getChildrenByTagName(parent, 'node'), function (nodeDom) {
51
+
52
+        var id = getAttr(nodeDom, 'id');
53
+        var label = getAttr(nodeDom, 'label');
54
+
55
+        var node = {
56
+            id: id,
57
+            name: label,
58
+            itemStyle: {
59
+                normal: {}
60
+            }
61
+        };
62
+
63
+        var vizSizeDom = getChildByTagName(nodeDom, 'viz:size');
64
+        var vizPosDom = getChildByTagName(nodeDom, 'viz:position');
65
+        var vizColorDom = getChildByTagName(nodeDom, 'viz:color');
66
+        // var vizShapeDom = getChildByTagName(nodeDom, 'viz:shape');
67
+
68
+        var attvaluesDom = getChildByTagName(nodeDom, 'attvalues');
69
+
70
+        if (vizSizeDom) {
71
+            node.symbolSize = parseFloat(getAttr(vizSizeDom, 'value'));
72
+        }
73
+        if (vizPosDom) {
74
+            node.x = parseFloat(getAttr(vizPosDom, 'x'));
75
+            node.y = parseFloat(getAttr(vizPosDom, 'y'));
76
+            // z
77
+        }
78
+        if (vizColorDom) {
79
+            node.itemStyle.normal.color = 'rgb(' +[
80
+                getAttr(vizColorDom, 'r') | 0,
81
+                getAttr(vizColorDom, 'g') | 0,
82
+                getAttr(vizColorDom, 'b') | 0
83
+            ].join(',') + ')';
84
+        }
85
+        // if (vizShapeDom) {
86
+            // node.shape = getAttr(vizShapeDom, 'shape');
87
+        // }
88
+        if (attvaluesDom) {
89
+            var attvalueDomList = getChildrenByTagName(attvaluesDom, 'attvalue');
90
+
91
+            node.attributes = {};
92
+
93
+            for (var j = 0; j < attvalueDomList.length; j++) {
94
+                var attvalueDom = attvalueDomList[j];
95
+                var attId = getAttr(attvalueDom, 'for');
96
+                var attValue = getAttr(attvalueDom, 'value');
97
+                var attribute = attributesMap[attId];
98
+
99
+                if (attribute) {
100
+                    switch (attribute.type) {
101
+                        case 'integer':
102
+                        case 'long':
103
+                            attValue = parseInt(attValue, 10);
104
+                            break;
105
+                        case 'float':
106
+                        case 'double':
107
+                            attValue = parseFloat(attValue);
108
+                            break;
109
+                        case 'boolean':
110
+                            attValue = attValue.toLowerCase() == 'true';
111
+                            break;
112
+                        default:
113
+                    }
114
+                    node.attributes[attId] = attValue;
115
+                }
116
+            }
117
+        }
118
+
119
+        return node;
120
+    }) : [];
121
+}
122
+
123
+function parseEdges(parent) {
124
+    return parent ? zrUtil.map(getChildrenByTagName(parent, 'edge'), function (edgeDom) {
125
+        var id = getAttr(edgeDom, 'id');
126
+        var label = getAttr(edgeDom, 'label');
127
+
128
+        var sourceId = getAttr(edgeDom, 'source');
129
+        var targetId = getAttr(edgeDom, 'target');
130
+
131
+        var edge = {
132
+            id: id,
133
+            name: label,
134
+            source: sourceId,
135
+            target: targetId,
136
+            lineStyle: {
137
+                normal: {}
138
+            }
139
+        };
140
+
141
+        var lineStyle = edge.lineStyle.normal;
142
+
143
+        var vizThicknessDom = getChildByTagName(edgeDom, 'viz:thickness');
144
+        var vizColorDom = getChildByTagName(edgeDom, 'viz:color');
145
+        // var vizShapeDom = getChildByTagName(edgeDom, 'viz:shape');
146
+
147
+        if (vizThicknessDom) {
148
+            lineStyle.width = parseFloat(vizThicknessDom.getAttribute('value'));
149
+        }
150
+        if (vizColorDom) {
151
+            lineStyle.color = 'rgb(' + [
152
+                getAttr(vizColorDom, 'r') | 0,
153
+                getAttr(vizColorDom, 'g') | 0,
154
+                getAttr(vizColorDom, 'b') | 0
155
+            ].join(',') + ')';
156
+        }
157
+        // if (vizShapeDom) {
158
+        //     edge.shape = vizShapeDom.getAttribute('shape');
159
+        // }
160
+
161
+        return edge;
162
+    }) : [];
163
+}
164
+
165
+function getAttr(el, attrName) {
166
+    return el.getAttribute(attrName);
167
+}
168
+
169
+function getChildByTagName (parent, tagName) {
170
+    var node = parent.firstChild;
171
+
172
+    while (node) {
173
+        if (
174
+            node.nodeType != 1 ||
175
+            node.nodeName.toLowerCase() != tagName.toLowerCase()
176
+        ) {
177
+            node = node.nextSibling;
178
+        } else {
179
+            return node;
180
+        }
181
+    }
182
+
183
+    return null;
184
+}
185
+
186
+function getChildrenByTagName (parent, tagName) {
187
+    var node = parent.firstChild;
188
+    var children = [];
189
+    while (node) {
190
+        if (node.nodeName.toLowerCase() == tagName.toLowerCase()) {
191
+            children.push(node);
192
+        }
193
+        node = node.nextSibling;
194
+    }
195
+
196
+    return children;
197
+}

+ 19 - 0
src/main/resources/static/bower_components/echarts/extension-src/dataTool/index.js

@@ -0,0 +1,19 @@
1
+import * as echarts from 'echarts';
2
+import * as gexf from './gexf';
3
+import prepareBoxplotData from './prepareBoxplotData';
4
+
5
+export var version = '1.0.0';
6
+
7
+export {gexf};
8
+
9
+export {prepareBoxplotData};
10
+
11
+// For backward compatibility, where the namespace `dataTool` will
12
+// be mounted on `echarts` is the extension `dataTool` is imported.
13
+// But the old version of echarts do not have `dataTool` namespace,
14
+// so check it before mounting.
15
+if (echarts.dataTool) {
16
+    echarts.dataTool.version = version;
17
+    echarts.dataTool.gexf = gexf;
18
+    echarts.dataTool.prepareBoxplotData = prepareBoxplotData;
19
+}

+ 73 - 0
src/main/resources/static/bower_components/echarts/extension-src/dataTool/prepareBoxplotData.js

@@ -0,0 +1,73 @@
1
+import quantile from './quantile';
2
+import * as numberUtil from '../../src/util/number';
3
+
4
+/**
5
+ * See:
6
+ *  <https://en.wikipedia.org/wiki/Box_plot#cite_note-frigge_hoaglin_iglewicz-2>
7
+ *  <http://stat.ethz.ch/R-manual/R-devel/library/grDevices/html/boxplot.stats.html>
8
+ *
9
+ * Helper method for preparing data.
10
+ *
11
+ * @param {Array.<number>} rawData like
12
+ *        [
13
+ *            [12,232,443], (raw data set for the first box)
14
+ *            [3843,5545,1232], (raw datat set for the second box)
15
+ *            ...
16
+ *        ]
17
+ * @param {Object} [opt]
18
+ *
19
+ * @param {(number|string)} [opt.boundIQR=1.5] Data less than min bound is outlier.
20
+ *      default 1.5, means Q1 - 1.5 * (Q3 - Q1).
21
+ *      If 'none'/0 passed, min bound will not be used.
22
+ * @param {(number|string)} [opt.layout='horizontal']
23
+ *      Box plot layout, can be 'horizontal' or 'vertical'
24
+ * @return {Object} {
25
+ *      boxData: Array.<Array.<number>>
26
+ *      outliers: Array.<Array.<number>>
27
+ *      axisData: Array.<string>
28
+ * }
29
+ */
30
+export default function (rawData, opt) {
31
+    opt = opt || [];
32
+    var boxData = [];
33
+    var outliers = [];
34
+    var axisData = [];
35
+    var boundIQR = opt.boundIQR;
36
+    var useExtreme = boundIQR === 'none' || boundIQR === 0;
37
+
38
+    for (var i = 0; i < rawData.length; i++) {
39
+        axisData.push(i + '');
40
+        var ascList = numberUtil.asc(rawData[i].slice());
41
+
42
+        var Q1 = quantile(ascList, 0.25);
43
+        var Q2 = quantile(ascList, 0.5);
44
+        var Q3 = quantile(ascList, 0.75);
45
+        var min = ascList[0];
46
+        var max = ascList[ascList.length - 1];
47
+
48
+        var bound = (boundIQR == null ? 1.5 : boundIQR) * (Q3 - Q1);
49
+
50
+        var low = useExtreme
51
+            ? min
52
+            : Math.max(min, Q1 - bound);
53
+        var high = useExtreme
54
+            ? max
55
+            : Math.min(max, Q3 + bound);
56
+
57
+        boxData.push([low, Q1, Q2, Q3, high]);
58
+
59
+        for (var j = 0; j < ascList.length; j++) {
60
+            var dataItem = ascList[j];
61
+            if (dataItem < low || dataItem > high) {
62
+                var outlier = [i, dataItem];
63
+                opt.layout === 'vertical' && outlier.reverse();
64
+                outliers.push(outlier);
65
+            }
66
+        }
67
+    }
68
+    return {
69
+        boxData: boxData,
70
+        outliers: outliers,
71
+        axisData: axisData
72
+    };
73
+}

+ 41 - 0
src/main/resources/static/bower_components/echarts/extension-src/dataTool/quantile.js

@@ -0,0 +1,41 @@
1
+/**
2
+ * Copyright (c) 2010-2015, Michael Bostock
3
+ * All rights reserved.
4
+ *
5
+ * Redistribution and use in source and binary forms, with or without
6
+ * modification, are permitted provided that the following conditions are met:
7
+ *
8
+ * * Redistributions of source code must retain the above copyright notice, this
9
+ *   list of conditions and the following disclaimer.
10
+ *
11
+ * * Redistributions in binary form must reproduce the above copyright notice,
12
+ *   this list of conditions and the following disclaimer in the documentation
13
+ *   and/or other materials provided with the distribution.
14
+ *
15
+ * * The name Michael Bostock may not be used to endorse or promote products
16
+ *   derived from this software without specific prior written permission.
17
+ *
18
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
+ * DISCLAIMED. IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY DIRECT,
22
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
23
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
25
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
26
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
27
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
+ */
29
+
30
+/**
31
+ * @see <https://github.com/mbostock/d3/blob/master/src/arrays/quantile.js>
32
+ * @see <http://en.wikipedia.org/wiki/Quantile>
33
+ * @param {Array.<number>} ascArr
34
+ */
35
+export default function(ascArr, p) {
36
+    var H = (ascArr.length - 1) * p + 1,
37
+        h = Math.floor(H),
38
+        v = +ascArr[h - 1],
39
+        e = H - h;
40
+    return e ? v + e * (ascArr[h] - v) : v;
41
+}

+ 206 - 0
src/main/resources/static/bower_components/echarts/extension/bmap/BMapCoordSys.js

@@ -0,0 +1,206 @@
1
+var _echarts = require("echarts");
2
+
3
+var zrUtil = _echarts.util;
4
+var graphic = _echarts.graphic;
5
+var matrix = _echarts.matrix;
6
+
7
+/* global BMap */
8
+function BMapCoordSys(bmap, api) {
9
+  this._bmap = bmap;
10
+  this.dimensions = ['lng', 'lat'];
11
+  this._mapOffset = [0, 0];
12
+  this._api = api;
13
+  this._projection = new BMap.MercatorProjection();
14
+}
15
+
16
+BMapCoordSys.prototype.dimensions = ['lng', 'lat'];
17
+
18
+BMapCoordSys.prototype.setZoom = function (zoom) {
19
+  this._zoom = zoom;
20
+};
21
+
22
+BMapCoordSys.prototype.setCenter = function (center) {
23
+  this._center = this._projection.lngLatToPoint(new BMap.Point(center[0], center[1]));
24
+};
25
+
26
+BMapCoordSys.prototype.setMapOffset = function (mapOffset) {
27
+  this._mapOffset = mapOffset;
28
+};
29
+
30
+BMapCoordSys.prototype.getBMap = function () {
31
+  return this._bmap;
32
+};
33
+
34
+BMapCoordSys.prototype.dataToPoint = function (data) {
35
+  var point = new BMap.Point(data[0], data[1]); // TODO mercator projection is toooooooo slow
36
+  // var mercatorPoint = this._projection.lngLatToPoint(point);
37
+  // var width = this._api.getZr().getWidth();
38
+  // var height = this._api.getZr().getHeight();
39
+  // var divider = Math.pow(2, 18 - 10);
40
+  // return [
41
+  //     Math.round((mercatorPoint.x - this._center.x) / divider + width / 2),
42
+  //     Math.round((this._center.y - mercatorPoint.y) / divider + height / 2)
43
+  // ];
44
+
45
+  var px = this._bmap.pointToOverlayPixel(point);
46
+
47
+  var mapOffset = this._mapOffset;
48
+  return [px.x - mapOffset[0], px.y - mapOffset[1]];
49
+};
50
+
51
+BMapCoordSys.prototype.pointToData = function (pt) {
52
+  var mapOffset = this._mapOffset;
53
+
54
+  var pt = this._bmap.overlayPixelToPoint({
55
+    x: pt[0] + mapOffset[0],
56
+    y: pt[1] + mapOffset[1]
57
+  });
58
+
59
+  return [pt.lng, pt.lat];
60
+};
61
+
62
+BMapCoordSys.prototype.getViewRect = function () {
63
+  var api = this._api;
64
+  return new graphic.BoundingRect(0, 0, api.getWidth(), api.getHeight());
65
+};
66
+
67
+BMapCoordSys.prototype.getRoamTransform = function () {
68
+  return matrix.create();
69
+};
70
+
71
+BMapCoordSys.prototype.prepareCustoms = function (data) {
72
+  var rect = this.getViewRect();
73
+  return {
74
+    coordSys: {
75
+      // The name exposed to user is always 'cartesian2d' but not 'grid'.
76
+      type: 'bmap',
77
+      x: rect.x,
78
+      y: rect.y,
79
+      width: rect.width,
80
+      height: rect.height
81
+    },
82
+    api: {
83
+      coord: zrUtil.bind(this.dataToPoint, this),
84
+      size: zrUtil.bind(dataToCoordSize, this)
85
+    }
86
+  };
87
+};
88
+
89
+function dataToCoordSize(dataSize, dataItem) {
90
+  dataItem = dataItem || [0, 0];
91
+  return zrUtil.map([0, 1], function (dimIdx) {
92
+    var val = dataItem[dimIdx];
93
+    var halfSize = dataSize[dimIdx] / 2;
94
+    var p1 = [];
95
+    var p2 = [];
96
+    p1[dimIdx] = val - halfSize;
97
+    p2[dimIdx] = val + halfSize;
98
+    p1[1 - dimIdx] = p2[1 - dimIdx] = dataItem[1 - dimIdx];
99
+    return Math.abs(this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx]);
100
+  }, this);
101
+}
102
+
103
+var Overlay; // For deciding which dimensions to use when creating list data
104
+
105
+BMapCoordSys.dimensions = BMapCoordSys.prototype.dimensions;
106
+
107
+function createOverlayCtor() {
108
+  function Overlay(root) {
109
+    this._root = root;
110
+  }
111
+
112
+  Overlay.prototype = new BMap.Overlay();
113
+  /**
114
+   * 初始化
115
+   *
116
+   * @param {BMap.Map} map
117
+   * @override
118
+   */
119
+
120
+  Overlay.prototype.initialize = function (map) {
121
+    map.getPanes().labelPane.appendChild(this._root);
122
+    return this._root;
123
+  };
124
+  /**
125
+   * @override
126
+   */
127
+
128
+
129
+  Overlay.prototype.draw = function () {};
130
+
131
+  return Overlay;
132
+}
133
+
134
+BMapCoordSys.create = function (ecModel, api) {
135
+  var bmapCoordSys;
136
+  var root = api.getDom(); // TODO Dispose
137
+
138
+  ecModel.eachComponent('bmap', function (bmapModel) {
139
+    var painter = api.getZr().painter;
140
+    var viewportRoot = painter.getViewportRoot();
141
+
142
+    if (typeof BMap === 'undefined') {
143
+      throw new Error('BMap api is not loaded');
144
+    }
145
+
146
+    Overlay = Overlay || createOverlayCtor();
147
+
148
+    if (bmapCoordSys) {
149
+      throw new Error('Only one bmap component can exist');
150
+    }
151
+
152
+    if (!bmapModel.__bmap) {
153
+      // Not support IE8
154
+      var bmapRoot = root.querySelector('.ec-extension-bmap');
155
+
156
+      if (bmapRoot) {
157
+        // Reset viewport left and top, which will be changed
158
+        // in moving handler in BMapView
159
+        viewportRoot.style.left = '0px';
160
+        viewportRoot.style.top = '0px';
161
+        root.removeChild(bmapRoot);
162
+      }
163
+
164
+      bmapRoot = document.createElement('div');
165
+      bmapRoot.style.cssText = 'width:100%;height:100%'; // Not support IE8
166
+
167
+      bmapRoot.classList.add('ec-extension-bmap');
168
+      root.appendChild(bmapRoot);
169
+      var bmap = bmapModel.__bmap = new BMap.Map(bmapRoot);
170
+      var overlay = new Overlay(viewportRoot);
171
+      bmap.addOverlay(overlay); // Override
172
+
173
+      painter.getViewportRootOffset = function () {
174
+        return {
175
+          offsetLeft: 0,
176
+          offsetTop: 0
177
+        };
178
+      };
179
+    }
180
+
181
+    var bmap = bmapModel.__bmap; // Set bmap options
182
+    // centerAndZoom before layout and render
183
+
184
+    var center = bmapModel.get('center');
185
+    var zoom = bmapModel.get('zoom');
186
+
187
+    if (center && zoom) {
188
+      var pt = new BMap.Point(center[0], center[1]);
189
+      bmap.centerAndZoom(pt, zoom);
190
+    }
191
+
192
+    bmapCoordSys = new BMapCoordSys(bmap, api);
193
+    bmapCoordSys.setMapOffset(bmapModel.__mapOffset || [0, 0]);
194
+    bmapCoordSys.setZoom(zoom);
195
+    bmapCoordSys.setCenter(center);
196
+    bmapModel.coordinateSystem = bmapCoordSys;
197
+  });
198
+  ecModel.eachSeries(function (seriesModel) {
199
+    if (seriesModel.get('coordinateSystem') === 'bmap') {
200
+      seriesModel.coordinateSystem = bmapCoordSys;
201
+    }
202
+  });
203
+};
204
+
205
+var _default = BMapCoordSys;
206
+module.exports = _default;

+ 29 - 0
src/main/resources/static/bower_components/echarts/extension/bmap/BMapModel.js

@@ -0,0 +1,29 @@
1
+var echarts = require("echarts");
2
+
3
+function v2Equal(a, b) {
4
+  return a && b && a[0] === b[0] && a[1] === b[1];
5
+}
6
+
7
+var _default = echarts.extendComponentModel({
8
+  type: 'bmap',
9
+  getBMap: function () {
10
+    // __bmap is injected when creating BMapCoordSys
11
+    return this.__bmap;
12
+  },
13
+  setCenterAndZoom: function (center, zoom) {
14
+    this.option.center = center;
15
+    this.option.zoom = zoom;
16
+  },
17
+  centerOrZoomChanged: function (center, zoom) {
18
+    var option = this.option;
19
+    return !(v2Equal(center, option.center) && zoom === option.zoom);
20
+  },
21
+  defaultOption: {
22
+    center: [104.114129, 37.550339],
23
+    zoom: 5,
24
+    mapStyle: {},
25
+    roam: false
26
+  }
27
+});
28
+
29
+module.exports = _default;

+ 83 - 0
src/main/resources/static/bower_components/echarts/extension/bmap/BMapView.js

@@ -0,0 +1,83 @@
1
+var echarts = require("echarts");
2
+
3
+var _default = echarts.extendComponentView({
4
+  type: 'bmap',
5
+  render: function (bMapModel, ecModel, api) {
6
+    var rendering = true;
7
+    var bmap = bMapModel.getBMap();
8
+    var viewportRoot = api.getZr().painter.getViewportRoot();
9
+    var coordSys = bMapModel.coordinateSystem;
10
+
11
+    var moveHandler = function (type, target) {
12
+      if (rendering) {
13
+        return;
14
+      }
15
+
16
+      var offsetEl = viewportRoot.parentNode.parentNode.parentNode;
17
+      var mapOffset = [-parseInt(offsetEl.style.left, 10) || 0, -parseInt(offsetEl.style.top, 10) || 0];
18
+      viewportRoot.style.left = mapOffset[0] + 'px';
19
+      viewportRoot.style.top = mapOffset[1] + 'px';
20
+      coordSys.setMapOffset(mapOffset);
21
+      bMapModel.__mapOffset = mapOffset;
22
+      api.dispatchAction({
23
+        type: 'bmapRoam'
24
+      });
25
+    };
26
+
27
+    function zoomEndHandler() {
28
+      if (rendering) {
29
+        return;
30
+      }
31
+
32
+      api.dispatchAction({
33
+        type: 'bmapRoam'
34
+      });
35
+    }
36
+
37
+    bmap.removeEventListener('moving', this._oldMoveHandler); // FIXME
38
+    // Moveend may be triggered by centerAndZoom method when creating coordSys next time
39
+    // bmap.removeEventListener('moveend', this._oldMoveHandler);
40
+
41
+    bmap.removeEventListener('zoomend', this._oldZoomEndHandler);
42
+    bmap.addEventListener('moving', moveHandler); // bmap.addEventListener('moveend', moveHandler);
43
+
44
+    bmap.addEventListener('zoomend', zoomEndHandler);
45
+    this._oldMoveHandler = moveHandler;
46
+    this._oldZoomEndHandler = zoomEndHandler;
47
+    var roam = bMapModel.get('roam');
48
+
49
+    if (roam && roam !== 'scale') {
50
+      bmap.enableDragging();
51
+    } else {
52
+      bmap.disableDragging();
53
+    }
54
+
55
+    if (roam && roam !== 'move') {
56
+      bmap.enableScrollWheelZoom();
57
+      bmap.enableDoubleClickZoom();
58
+      bmap.enablePinchToZoom();
59
+    } else {
60
+      bmap.disableScrollWheelZoom();
61
+      bmap.disableDoubleClickZoom();
62
+      bmap.disablePinchToZoom();
63
+    }
64
+
65
+    var originalStyle = bMapModel.__mapStyle;
66
+    var newMapStyle = bMapModel.get('mapStyle') || {}; // FIXME, Not use JSON methods
67
+
68
+    var mapStyleStr = JSON.stringify(newMapStyle);
69
+
70
+    if (JSON.stringify(originalStyle) !== mapStyleStr) {
71
+      // FIXME May have blank tile when dragging if setMapStyle
72
+      if (Object.keys(newMapStyle).length) {
73
+        bmap.setMapStyle(newMapStyle);
74
+      }
75
+
76
+      bMapModel.__mapStyle = JSON.parse(mapStyleStr);
77
+    }
78
+
79
+    rendering = false;
80
+  }
81
+});
82
+
83
+module.exports = _default;

+ 72 - 0
src/main/resources/static/bower_components/echarts/extension/bmap/README.md

@@ -0,0 +1,72 @@
1
+## 百度地图扩展
2
+
3
+ECharts 百度地图扩展,可以在百度地图上展现 [点图](http://echarts.baidu.com/option.html#series-scatter),[线图](http://echarts.baidu.com/option.html#series-line),[热力图](http://echarts.baidu.com/option.html#series-heatmap) 等可视化。
4
+
5
+
6
+### 示例
7
+
8
+[全国主要城市空气质量](http://echarts.baidu.com/demo.html#effectScatter-bmap)
9
+
10
+[北京公交路线](http://echarts.baidu.com/demo.html#lines-bmap-bus)
11
+
12
+[北京公交路线特效](http://echarts.baidu.com/demo.html#lines-bmap-effect)
13
+
14
+[北京公交路线特效](http://echarts.baidu.com/demo.html#lines-bmap-effect)
15
+
16
+[杭州热门步行路线](http://echarts.baidu.com/demo.html#heatmap-bmap)
17
+
18
+
19
+### 引入
20
+
21
+可以直接引入打包好的扩展文件和百度地图的 jssdk
22
+
23
+```html
24
+<!--引入百度地图的jssdk,这里需要使用你在百度地图开发者平台申请的 ak-->
25
+<script src="http://api.map.baidu.com/api?v=2.0&ak="></script>
26
+<!-- 引入 ECharts -->
27
+<script src="dist/echarts.min.js"></script>
28
+<!-- 引入百度地图扩展 -->
29
+<script src="dist/extension/bmap.min.js"></script>
30
+```
31
+
32
+如果是 webpack 打包,也可以 require 引入
33
+
34
+```js
35
+require('echarts');
36
+require('echarts/extension/bmap/bmap');
37
+```
38
+
39
+插件会自动注册相应的组件。
40
+
41
+### 使用
42
+
43
+扩展主要提供了跟 geo 一样的坐标系和底图的绘制,因此配置方式非常简单,如下
44
+
45
+```js
46
+option = {
47
+    // 加载 bmap 组件
48
+    bmap: {
49
+        // 百度地图中心经纬度
50
+        center: [120.13066322374, 30.240018034923],
51
+        // 百度地图缩放
52
+        zoom: 14,
53
+        // 是否开启拖拽缩放,可以只设置 'scale' 或者 'move'
54
+        roam: true,
55
+        // 百度地图的自定义样式,见 http://developer.baidu.com/map/jsdevelop-11.htm
56
+        mapStyle: {}
57
+    },
58
+    series: [{
59
+        type: 'scatter',
60
+        // 使用百度地图坐标系
61
+        coordinateSystem: 'bmap',
62
+        // 数据格式跟在 geo 坐标系上一样,每一项都是 [经度,纬度,数值大小,其它维度...]
63
+        data: [ [120, 30, 1] ]
64
+    }]
65
+}
66
+
67
+// 获取百度地图实例,使用百度地图自带的控件
68
+var bmap = chart.getModel().getComponent('bmap').getBMap();
69
+bmap.addControl(new BMap.MapTypeControl());
70
+```
71
+
72
+

+ 26 - 0
src/main/resources/static/bower_components/echarts/extension/bmap/bmap.js

@@ -0,0 +1,26 @@
1
+var echarts = require("echarts");
2
+
3
+var BMapCoordSys = require("./BMapCoordSys");
4
+
5
+require("./BMapModel");
6
+
7
+require("./BMapView");
8
+
9
+/**
10
+ * BMap component extension
11
+ */
12
+echarts.registerCoordinateSystem('bmap', BMapCoordSys); // Action
13
+
14
+echarts.registerAction({
15
+  type: 'bmapRoam',
16
+  event: 'bmapRoam',
17
+  update: 'updateLayout'
18
+}, function (payload, ecModel) {
19
+  ecModel.eachComponent('bmap', function (bMapModel) {
20
+    var bmap = bMapModel.getBMap();
21
+    var center = bmap.getCenter();
22
+    bMapModel.setCenterAndZoom([center.lng, center.lat], bmap.getZoom());
23
+  });
24
+});
25
+var version = '1.0.0';
26
+exports.version = version;

+ 187 - 0
src/main/resources/static/bower_components/echarts/extension/dataTool/gexf.js

@@ -0,0 +1,187 @@
1
+var zrUtil = require("zrender/lib/core/util");
2
+
3
+// GEXF File Parser
4
+// http://gexf.net/1.2draft/gexf-12draft-primer.pdf
5
+function parse(xml) {
6
+  var doc;
7
+
8
+  if (typeof xml === 'string') {
9
+    var parser = new DOMParser();
10
+    doc = parser.parseFromString(xml, 'text/xml');
11
+  } else {
12
+    doc = xml;
13
+  }
14
+
15
+  if (!doc || doc.getElementsByTagName('parsererror').length) {
16
+    return null;
17
+  }
18
+
19
+  var gexfRoot = getChildByTagName(doc, 'gexf');
20
+
21
+  if (!gexfRoot) {
22
+    return null;
23
+  }
24
+
25
+  var graphRoot = getChildByTagName(gexfRoot, 'graph');
26
+  var attributes = parseAttributes(getChildByTagName(graphRoot, 'attributes'));
27
+  var attributesMap = {};
28
+
29
+  for (var i = 0; i < attributes.length; i++) {
30
+    attributesMap[attributes[i].id] = attributes[i];
31
+  }
32
+
33
+  return {
34
+    nodes: parseNodes(getChildByTagName(graphRoot, 'nodes'), attributesMap),
35
+    links: parseEdges(getChildByTagName(graphRoot, 'edges'))
36
+  };
37
+}
38
+
39
+function parseAttributes(parent) {
40
+  return parent ? zrUtil.map(getChildrenByTagName(parent, 'attribute'), function (attribDom) {
41
+    return {
42
+      id: getAttr(attribDom, 'id'),
43
+      title: getAttr(attribDom, 'title'),
44
+      type: getAttr(attribDom, 'type')
45
+    };
46
+  }) : [];
47
+}
48
+
49
+function parseNodes(parent, attributesMap) {
50
+  return parent ? zrUtil.map(getChildrenByTagName(parent, 'node'), function (nodeDom) {
51
+    var id = getAttr(nodeDom, 'id');
52
+    var label = getAttr(nodeDom, 'label');
53
+    var node = {
54
+      id: id,
55
+      name: label,
56
+      itemStyle: {
57
+        normal: {}
58
+      }
59
+    };
60
+    var vizSizeDom = getChildByTagName(nodeDom, 'viz:size');
61
+    var vizPosDom = getChildByTagName(nodeDom, 'viz:position');
62
+    var vizColorDom = getChildByTagName(nodeDom, 'viz:color'); // var vizShapeDom = getChildByTagName(nodeDom, 'viz:shape');
63
+
64
+    var attvaluesDom = getChildByTagName(nodeDom, 'attvalues');
65
+
66
+    if (vizSizeDom) {
67
+      node.symbolSize = parseFloat(getAttr(vizSizeDom, 'value'));
68
+    }
69
+
70
+    if (vizPosDom) {
71
+      node.x = parseFloat(getAttr(vizPosDom, 'x'));
72
+      node.y = parseFloat(getAttr(vizPosDom, 'y')); // z
73
+    }
74
+
75
+    if (vizColorDom) {
76
+      node.itemStyle.normal.color = 'rgb(' + [getAttr(vizColorDom, 'r') | 0, getAttr(vizColorDom, 'g') | 0, getAttr(vizColorDom, 'b') | 0].join(',') + ')';
77
+    } // if (vizShapeDom) {
78
+    // node.shape = getAttr(vizShapeDom, 'shape');
79
+    // }
80
+
81
+
82
+    if (attvaluesDom) {
83
+      var attvalueDomList = getChildrenByTagName(attvaluesDom, 'attvalue');
84
+      node.attributes = {};
85
+
86
+      for (var j = 0; j < attvalueDomList.length; j++) {
87
+        var attvalueDom = attvalueDomList[j];
88
+        var attId = getAttr(attvalueDom, 'for');
89
+        var attValue = getAttr(attvalueDom, 'value');
90
+        var attribute = attributesMap[attId];
91
+
92
+        if (attribute) {
93
+          switch (attribute.type) {
94
+            case 'integer':
95
+            case 'long':
96
+              attValue = parseInt(attValue, 10);
97
+              break;
98
+
99
+            case 'float':
100
+            case 'double':
101
+              attValue = parseFloat(attValue);
102
+              break;
103
+
104
+            case 'boolean':
105
+              attValue = attValue.toLowerCase() == 'true';
106
+              break;
107
+
108
+            default:
109
+          }
110
+
111
+          node.attributes[attId] = attValue;
112
+        }
113
+      }
114
+    }
115
+
116
+    return node;
117
+  }) : [];
118
+}
119
+
120
+function parseEdges(parent) {
121
+  return parent ? zrUtil.map(getChildrenByTagName(parent, 'edge'), function (edgeDom) {
122
+    var id = getAttr(edgeDom, 'id');
123
+    var label = getAttr(edgeDom, 'label');
124
+    var sourceId = getAttr(edgeDom, 'source');
125
+    var targetId = getAttr(edgeDom, 'target');
126
+    var edge = {
127
+      id: id,
128
+      name: label,
129
+      source: sourceId,
130
+      target: targetId,
131
+      lineStyle: {
132
+        normal: {}
133
+      }
134
+    };
135
+    var lineStyle = edge.lineStyle.normal;
136
+    var vizThicknessDom = getChildByTagName(edgeDom, 'viz:thickness');
137
+    var vizColorDom = getChildByTagName(edgeDom, 'viz:color'); // var vizShapeDom = getChildByTagName(edgeDom, 'viz:shape');
138
+
139
+    if (vizThicknessDom) {
140
+      lineStyle.width = parseFloat(vizThicknessDom.getAttribute('value'));
141
+    }
142
+
143
+    if (vizColorDom) {
144
+      lineStyle.color = 'rgb(' + [getAttr(vizColorDom, 'r') | 0, getAttr(vizColorDom, 'g') | 0, getAttr(vizColorDom, 'b') | 0].join(',') + ')';
145
+    } // if (vizShapeDom) {
146
+    //     edge.shape = vizShapeDom.getAttribute('shape');
147
+    // }
148
+
149
+
150
+    return edge;
151
+  }) : [];
152
+}
153
+
154
+function getAttr(el, attrName) {
155
+  return el.getAttribute(attrName);
156
+}
157
+
158
+function getChildByTagName(parent, tagName) {
159
+  var node = parent.firstChild;
160
+
161
+  while (node) {
162
+    if (node.nodeType != 1 || node.nodeName.toLowerCase() != tagName.toLowerCase()) {
163
+      node = node.nextSibling;
164
+    } else {
165
+      return node;
166
+    }
167
+  }
168
+
169
+  return null;
170
+}
171
+
172
+function getChildrenByTagName(parent, tagName) {
173
+  var node = parent.firstChild;
174
+  var children = [];
175
+
176
+  while (node) {
177
+    if (node.nodeName.toLowerCase() == tagName.toLowerCase()) {
178
+      children.push(node);
179
+    }
180
+
181
+    node = node.nextSibling;
182
+  }
183
+
184
+  return children;
185
+}
186
+
187
+exports.parse = parse;

+ 22 - 0
src/main/resources/static/bower_components/echarts/extension/dataTool/index.js

@@ -0,0 +1,22 @@
1
+var echarts = require("echarts");
2
+
3
+var gexf = require("./gexf");
4
+
5
+exports.gexf = gexf;
6
+
7
+var prepareBoxplotData = require("./prepareBoxplotData");
8
+
9
+exports.prepareBoxplotData = prepareBoxplotData;
10
+var version = '1.0.0';
11
+
12
+// For backward compatibility, where the namespace `dataTool` will
13
+// be mounted on `echarts` is the extension `dataTool` is imported.
14
+// But the old version of echarts do not have `dataTool` namespace,
15
+// so check it before mounting.
16
+if (echarts.dataTool) {
17
+  echarts.dataTool.version = version;
18
+  echarts.dataTool.gexf = gexf;
19
+  echarts.dataTool.prepareBoxplotData = prepareBoxplotData;
20
+}
21
+
22
+exports.version = version;

+ 70 - 0
src/main/resources/static/bower_components/echarts/extension/dataTool/prepareBoxplotData.js

@@ -0,0 +1,70 @@
1
+var quantile = require("./quantile");
2
+
3
+var numberUtil = require("../../lib/util/number");
4
+
5
+/**
6
+ * See:
7
+ *  <https://en.wikipedia.org/wiki/Box_plot#cite_note-frigge_hoaglin_iglewicz-2>
8
+ *  <http://stat.ethz.ch/R-manual/R-devel/library/grDevices/html/boxplot.stats.html>
9
+ *
10
+ * Helper method for preparing data.
11
+ *
12
+ * @param {Array.<number>} rawData like
13
+ *        [
14
+ *            [12,232,443], (raw data set for the first box)
15
+ *            [3843,5545,1232], (raw datat set for the second box)
16
+ *            ...
17
+ *        ]
18
+ * @param {Object} [opt]
19
+ *
20
+ * @param {(number|string)} [opt.boundIQR=1.5] Data less than min bound is outlier.
21
+ *      default 1.5, means Q1 - 1.5 * (Q3 - Q1).
22
+ *      If 'none'/0 passed, min bound will not be used.
23
+ * @param {(number|string)} [opt.layout='horizontal']
24
+ *      Box plot layout, can be 'horizontal' or 'vertical'
25
+ * @return {Object} {
26
+ *      boxData: Array.<Array.<number>>
27
+ *      outliers: Array.<Array.<number>>
28
+ *      axisData: Array.<string>
29
+ * }
30
+ */
31
+function _default(rawData, opt) {
32
+  opt = opt || [];
33
+  var boxData = [];
34
+  var outliers = [];
35
+  var axisData = [];
36
+  var boundIQR = opt.boundIQR;
37
+  var useExtreme = boundIQR === 'none' || boundIQR === 0;
38
+
39
+  for (var i = 0; i < rawData.length; i++) {
40
+    axisData.push(i + '');
41
+    var ascList = numberUtil.asc(rawData[i].slice());
42
+    var Q1 = quantile(ascList, 0.25);
43
+    var Q2 = quantile(ascList, 0.5);
44
+    var Q3 = quantile(ascList, 0.75);
45
+    var min = ascList[0];
46
+    var max = ascList[ascList.length - 1];
47
+    var bound = (boundIQR == null ? 1.5 : boundIQR) * (Q3 - Q1);
48
+    var low = useExtreme ? min : Math.max(min, Q1 - bound);
49
+    var high = useExtreme ? max : Math.min(max, Q3 + bound);
50
+    boxData.push([low, Q1, Q2, Q3, high]);
51
+
52
+    for (var j = 0; j < ascList.length; j++) {
53
+      var dataItem = ascList[j];
54
+
55
+      if (dataItem < low || dataItem > high) {
56
+        var outlier = [i, dataItem];
57
+        opt.layout === 'vertical' && outlier.reverse();
58
+        outliers.push(outlier);
59
+      }
60
+    }
61
+  }
62
+
63
+  return {
64
+    boxData: boxData,
65
+    outliers: outliers,
66
+    axisData: axisData
67
+  };
68
+}
69
+
70
+module.exports = _default;

+ 43 - 0
src/main/resources/static/bower_components/echarts/extension/dataTool/quantile.js

@@ -0,0 +1,43 @@
1
+/**
2
+ * Copyright (c) 2010-2015, Michael Bostock
3
+ * All rights reserved.
4
+ *
5
+ * Redistribution and use in source and binary forms, with or without
6
+ * modification, are permitted provided that the following conditions are met:
7
+ *
8
+ * * Redistributions of source code must retain the above copyright notice, this
9
+ *   list of conditions and the following disclaimer.
10
+ *
11
+ * * Redistributions in binary form must reproduce the above copyright notice,
12
+ *   this list of conditions and the following disclaimer in the documentation
13
+ *   and/or other materials provided with the distribution.
14
+ *
15
+ * * The name Michael Bostock may not be used to endorse or promote products
16
+ *   derived from this software without specific prior written permission.
17
+ *
18
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
+ * DISCLAIMED. IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY DIRECT,
22
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
23
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
25
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
26
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
27
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
+ */
29
+
30
+/**
31
+ * @see <https://github.com/mbostock/d3/blob/master/src/arrays/quantile.js>
32
+ * @see <http://en.wikipedia.org/wiki/Quantile>
33
+ * @param {Array.<number>} ascArr
34
+ */
35
+function _default(ascArr, p) {
36
+  var H = (ascArr.length - 1) * p + 1,
37
+      h = Math.floor(H),
38
+      v = +ascArr[h - 1],
39
+      e = H - h;
40
+  return e ? v + e * (ascArr[h] - v) : v;
41
+}
42
+
43
+module.exports = _default;

+ 1 - 0
src/main/resources/static/bower_components/echarts/extension/echarts.js

@@ -0,0 +1 @@
1
+define('echarts', [], function () {return echarts;});

+ 17 - 0
src/main/resources/static/bower_components/echarts/extension/webpack.config.js

@@ -0,0 +1,17 @@
1
+var PROD = process.argv.indexOf('-p') >= 0;
2
+
3
+module.exports = {
4
+    entry: {
5
+        'bmap': __dirname + '/../extension/bmap/bmap.js',
6
+        'dataTool': __dirname + '/../extension/dataTool'
7
+    },
8
+    output: {
9
+        libraryTarget: 'umd',
10
+        library: ['echarts', '[name]'],
11
+        path: __dirname + '/../dist/extension',
12
+        filename: PROD ? '[name].min.js' : '[name].js'
13
+    },
14
+    externals: {
15
+        'echarts': 'echarts'
16
+    }
17
+};

+ 51 - 0
src/main/resources/static/bower_components/echarts/index.common.js

@@ -0,0 +1,51 @@
1
+var _echarts = require("./lib/echarts");
2
+
3
+(function () {
4
+  for (var key in _echarts) {
5
+    if (_echarts == null || !_echarts.hasOwnProperty(key) || key === 'default' || key === '__esModule') return;
6
+    exports[key] = _echarts[key];
7
+  }
8
+})();
9
+
10
+var _export = require("./lib/export");
11
+
12
+(function () {
13
+  for (var key in _export) {
14
+    if (_export == null || !_export.hasOwnProperty(key) || key === 'default' || key === '__esModule') return;
15
+    exports[key] = _export[key];
16
+  }
17
+})();
18
+
19
+require("./lib/chart/line");
20
+
21
+require("./lib/chart/bar");
22
+
23
+require("./lib/chart/pie");
24
+
25
+require("./lib/chart/scatter");
26
+
27
+require("./lib/component/graphic");
28
+
29
+require("./lib/component/tooltip");
30
+
31
+require("./lib/component/axisPointer");
32
+
33
+require("./lib/component/legendScroll");
34
+
35
+require("./lib/component/grid");
36
+
37
+require("./lib/component/title");
38
+
39
+require("./lib/component/markPoint");
40
+
41
+require("./lib/component/markLine");
42
+
43
+require("./lib/component/markArea");
44
+
45
+require("./lib/component/dataZoom");
46
+
47
+require("./lib/component/toolbox");
48
+
49
+require("zrender/lib/vml/vml");
50
+
51
+require("zrender/lib/svg/svg");

+ 101 - 0
src/main/resources/static/bower_components/echarts/index.js

@@ -0,0 +1,101 @@
1
+var _echarts = require("./lib/echarts");
2
+
3
+(function () {
4
+  for (var key in _echarts) {
5
+    if (_echarts == null || !_echarts.hasOwnProperty(key) || key === 'default' || key === '__esModule') return;
6
+    exports[key] = _echarts[key];
7
+  }
8
+})();
9
+
10
+var _export = require("./lib/export");
11
+
12
+(function () {
13
+  for (var key in _export) {
14
+    if (_export == null || !_export.hasOwnProperty(key) || key === 'default' || key === '__esModule') return;
15
+    exports[key] = _export[key];
16
+  }
17
+})();
18
+
19
+require("./lib/chart/line");
20
+
21
+require("./lib/chart/bar");
22
+
23
+require("./lib/chart/pie");
24
+
25
+require("./lib/chart/scatter");
26
+
27
+require("./lib/chart/radar");
28
+
29
+require("./lib/chart/map");
30
+
31
+require("./lib/chart/tree");
32
+
33
+require("./lib/chart/treemap");
34
+
35
+require("./lib/chart/graph");
36
+
37
+require("./lib/chart/gauge");
38
+
39
+require("./lib/chart/funnel");
40
+
41
+require("./lib/chart/parallel");
42
+
43
+require("./lib/chart/sankey");
44
+
45
+require("./lib/chart/boxplot");
46
+
47
+require("./lib/chart/candlestick");
48
+
49
+require("./lib/chart/effectScatter");
50
+
51
+require("./lib/chart/lines");
52
+
53
+require("./lib/chart/heatmap");
54
+
55
+require("./lib/chart/pictorialBar");
56
+
57
+require("./lib/chart/themeRiver");
58
+
59
+require("./lib/chart/custom");
60
+
61
+require("./lib/component/graphic");
62
+
63
+require("./lib/component/grid");
64
+
65
+require("./lib/component/legendScroll");
66
+
67
+require("./lib/component/tooltip");
68
+
69
+require("./lib/component/axisPointer");
70
+
71
+require("./lib/component/polar");
72
+
73
+require("./lib/component/geo");
74
+
75
+require("./lib/component/parallel");
76
+
77
+require("./lib/component/singleAxis");
78
+
79
+require("./lib/component/brush");
80
+
81
+require("./lib/component/calendar");
82
+
83
+require("./lib/component/title");
84
+
85
+require("./lib/component/dataZoom");
86
+
87
+require("./lib/component/visualMap");
88
+
89
+require("./lib/component/markPoint");
90
+
91
+require("./lib/component/markLine");
92
+
93
+require("./lib/component/markArea");
94
+
95
+require("./lib/component/timeline");
96
+
97
+require("./lib/component/toolbox");
98
+
99
+require("zrender/lib/vml/vml");
100
+
101
+require("zrender/lib/svg/svg");

+ 16 - 0
src/main/resources/static/bower_components/echarts/index.simple.js

@@ -0,0 +1,16 @@
1
+var _echarts = require("./lib/echarts");
2
+
3
+(function () {
4
+  for (var key in _echarts) {
5
+    if (_echarts == null || !_echarts.hasOwnProperty(key) || key === 'default' || key === '__esModule') return;
6
+    exports[key] = _echarts[key];
7
+  }
8
+})();
9
+
10
+require("./lib/chart/line");
11
+
12
+require("./lib/chart/bar");
13
+
14
+require("./lib/chart/pie");
15
+
16
+require("./lib/component/gridSimple");

Dosya farkı çok büyük olduğundan ihmal edildi
+ 27 - 0
src/main/resources/static/bower_components/echarts/map/js/china-contour.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 27 - 0
src/main/resources/static/bower_components/echarts/map/js/china.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 27 - 0
src/main/resources/static/bower_components/echarts/map/js/province/anhui.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 27 - 0
src/main/resources/static/bower_components/echarts/map/js/province/aomen.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 27 - 0
src/main/resources/static/bower_components/echarts/map/js/province/beijing.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 27 - 0
src/main/resources/static/bower_components/echarts/map/js/province/chongqing.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 27 - 0
src/main/resources/static/bower_components/echarts/map/js/province/fujian.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 27 - 0
src/main/resources/static/bower_components/echarts/map/js/province/gansu.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 27 - 0
src/main/resources/static/bower_components/echarts/map/js/province/guangdong.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 27 - 0
src/main/resources/static/bower_components/echarts/map/js/province/guangxi.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 27 - 0
src/main/resources/static/bower_components/echarts/map/js/province/guizhou.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 27 - 0
src/main/resources/static/bower_components/echarts/map/js/province/hainan.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 27 - 0
src/main/resources/static/bower_components/echarts/map/js/province/hebei.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 27 - 0
src/main/resources/static/bower_components/echarts/map/js/province/heilongjiang.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 27 - 0
src/main/resources/static/bower_components/echarts/map/js/province/henan.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 27 - 0
src/main/resources/static/bower_components/echarts/map/js/province/hubei.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 27 - 0
src/main/resources/static/bower_components/echarts/map/js/province/hunan.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 27 - 0
src/main/resources/static/bower_components/echarts/map/js/province/jiangsu.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 27 - 0
src/main/resources/static/bower_components/echarts/map/js/province/jiangxi.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 27 - 0
src/main/resources/static/bower_components/echarts/map/js/province/jilin.js


+ 0 - 0
src/main/resources/static/bower_components/echarts/map/js/province/liaoning.js


Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor