├── .gitignore ├── LICENSE ├── README.md ├── application ├── d3layout │ ├── d3collide-v3.html │ ├── d3layout-v3.html │ ├── d3layout-v4.html │ ├── js │ │ ├── app-collide-v3.js │ │ ├── app-force-v3.js │ │ ├── app-force-v4.js │ │ ├── d3.v3.min.js │ │ ├── d3.v4.min.js │ │ ├── d3.v5.min.js │ │ ├── jquery.min.js │ │ └── visgraph.min.js │ └── style │ │ ├── bootstrap │ │ ├── bootstrap.min.css │ │ ├── bootstrap.min.js │ │ └── fontawesome │ │ │ ├── css │ │ │ ├── font-awesome.css │ │ │ └── font-awesome.min.css │ │ │ └── fonts │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.svg │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ └── fontawesome-webfont.woff2 │ │ └── style.css ├── graph │ └── README.md ├── neo4j │ └── README.md ├── network │ └── README.md ├── sna │ └── README.md └── workflow │ └── README.md ├── demo ├── README.md ├── common │ └── jquery.min.js ├── demo.html ├── images │ └── T1030001.svg ├── js │ ├── demo.js │ ├── visgraph-community.min.js │ ├── visgraph-layout.min.js │ └── visgraph.min.js └── style │ ├── bootstrap │ ├── bootstrap.min.css │ ├── bootstrap.min.js │ └── fontawesome │ │ ├── css │ │ ├── font-awesome.css │ │ └── font-awesome.min.css │ │ └── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ └── fontawesome-webfont.woff2 │ └── style.css ├── dist ├── visgraph-community.min.js ├── visgraph-layout.min.js └── visgraph.min.js └── src ├── algorithm ├── community │ └── clusterFactory.js └── layout │ └── layoutFactory.js └── visgraph └── visgraph.js /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs and databases # 2 | ###################### 3 | *.log 4 | 5 | # OS generated files # 6 | ###################### 7 | .DS_Store* 8 | ehthumbs.db 9 | Icon? 10 | Thumbs.db 11 | 12 | # Editor Files # 13 | ################ 14 | *~ 15 | *.swp 16 | 17 | # Gradle Files # 18 | ################ 19 | .gradle 20 | 21 | # Build output directies 22 | /target 23 | **/target 24 | /build 25 | */build 26 | */bin 27 | 28 | # IntelliJ specific files/directories 29 | out 30 | .idea 31 | *.ipr 32 | *.iws 33 | *.iml 34 | atlassian-ide-plugin.xml 35 | .idea 36 | *.iml 37 | target 38 | .settings 39 | .classpath 40 | .project 41 | 42 | 43 | # Eclipse specific files/directories 44 | .classpath 45 | .project 46 | .settings 47 | .metadata 48 | 49 | # NetBeans specific files/directories 50 | .nbattrs 51 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Hi-xiaobai 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GraphVis 2 | 3 | ### 说明:github版本不再更新,如要使用最新版本,请转到码云查看下载 [码云Gitee](https://gitee.com/baopengdu/GraphVis)。 4 | 5 | ### 一个较为完善的图可视化引擎,支持自定义的可视化效果,集成多种经典网络布局算法,社区发现算法,路径分析算法,方便使用人员或开发者快速构建自己的图可视化分析应用。 6 | 7 | 主页:[www.graphvis.cn](http://www.graphvis.cn) 8 | 9 | 开发指南:[GraphVis开发指南](https://www.yuque.com/dashboard/docs) 10 | 11 | Gitee:[GitHub地址](https://gitee.com/baopengdu/GraphVis) 12 | 13 | ### 项目核心价值 14 | 1. 快速高效的可视化引擎,支持大量数据的交互式操作。 15 | 2. 集成大量的经典布局算法,如:树形结构类,力导向布局类,圆形类,层级关系类、节点避免重叠等 16 | 3. 支持经典社区划分算法,如:chineseWisper, lovin,newman等 17 | 4. 完整的在线应用实例,完善的开发文档(持续更新中...) 18 | 19 | ``` 20 | 活跃的交流群体,持续优化改进的可视化效果和交互,让GraphVis在未来一定会成为图数据可视化领域的一个活跃分子。 21 | 欢迎有兴趣的同学们参与进来,共同把GraphVis打造成为图数据可视化分析领域的流行组件,服务更多的开发者。 22 | ``` 23 | 24 | ### 快速使用 25 | 26 | ``` 27 | 界面原生方式引用 28 | 当前组件包支持两种引用方式: 29 | 30 | 页面标签直接引用 31 | 32 | 33 | require异步加载引用 页面标签直接引用 34 | requirejs(['visgraph','layoutFactory','clusterFactory'],function(VisGraph,layoutFactory,clusterFactory) {//do something}); 35 | 36 | ``` 37 | 38 | #### GraphVis实现图数据的可视化只需以下三步即可,无需深入的基础知识也可快速使用: 39 | 40 | ``` 41 | 1、后台服务按照格式组织数据,如: 42 | var data = { 43 | nodes:[{id:'1',label:'刘备',type:'男',properties:{age:50}}, 44 | {id:'2',label:'关羽',type:'男'}, 45 | {id:'3',label:'张飞',type:'男'}], 46 | links:[{source:'1',target:'2',label:'二弟',properties:{other:'other prop'}}, 47 | {source:'1',target:'3',label:'三弟'}] 48 | }; 49 | 50 | 2、界面添加图层包裹元素,如: 51 |
52 | 53 | 3、初始化关系图 54 | let visGraph = new VisGraph(document.getElementById('graph-panel')); 55 | visgraph.drawData(data);//绘制图完成 56 | 57 | ``` 58 | 59 | #### 支持自定义配置,实现个性化需求及交互 60 | ``` 61 | 详细配置如下,可选择性配置需要的参数,不需要无需配置 62 | let visGraph = new VisGraph(document.getElementById(visDomId), 63 | { 64 | node:{ //节点的默认配置 65 | label:{ //标签配置 66 | show:true, //是否显示 67 | color:'50,50,50',//字体颜色 68 | font:'12px 微软雅黑',//字体大小及类型 69 | wrapText:false, //节点包裹文字 70 | textPosition:'Middle_Center'//文字位置 Top_Center,Bottom_Center,Middle_Right 71 | }, 72 | shape:'circle',//节点形状 circle,rect,square,ellipse,triangle,star,polygon,text 73 | color:'20,20,200',//节点颜色 74 | //image:'images/T1030001.svg',//节点图标(设置后节点显示为圆形图标) 75 | borderColor:'255,255,20',//边框颜色 76 | borderWidth:0,//边框宽度, 77 | lineDash:[3,2],//边框虚线间隔,borderWidth>0时生效 78 | showShadow:true,//显示选中阴影 79 | shadowColor:'0,255,0',//阴影颜色 80 | alpha:1,//节点透明度 81 | size:60, //节点默认大小 82 | width:80, //节点的长度(shape为rect生效) 83 | height:40,//节点的高度(shape为rect生效) 84 | onClick : function(event,node){ //节点点击事件回调 85 | // do something 86 | console.log('click node----['+node.id+':'+node.label+']'); 87 | } 88 | }, 89 | link:{ //连线的默认配置 90 | label:{ //连线标签 91 | show:false, //是否显示 92 | color:'20,20,20', //字体颜色 93 | font:'11px 微软雅黑'//字体大小及类型 94 | }, 95 | lineType:'direct',//连线类型,direct,curver,vlink,hlink,bezier,vbezier,hbezier 96 | colorType:'defined',//连线颜色类型 source:继承source颜色,target:继承target颜色 both:用双边颜色,defined:自定义 97 | color:'180,180,180', //连线颜色 98 | alpha:1, // 连线透明度 99 | lineWidth:5, //连线宽度 100 | lineDash:[0],//虚线间隔样式如:[5,8] 101 | showArrow:true,//显示箭头 102 | onClick :function(event,link){ //连线点击事件回调 103 | // do something 104 | console.log('click link---['+link.source.id+'-->'+link.target.id+']'); 105 | } 106 | }, 107 | highLightNeiber:true, //相邻节点高亮开关 108 | backGroundType:'png',//保存图片的类型,支持png、jpeg 109 | wheelZoom:0.8,//滚轮缩放开关,不使用时不设置[0,1] 110 | marginLeft:-40, //对右键菜单位置进行调校的参数 111 | rightMenu:{ 112 | nodeMenu:NodeRightMenu, //节点右键菜单配置 113 | linkMenu:LinkRightMenu // 连线右键菜单配置 114 | } 115 | } 116 | ); 117 | ``` 118 | 119 | ## 应用效果图 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 |
134 | 135 | ## GraphVis 交流讨论 136 | 137 | 138 | 139 | 140 | 141 |
142 | 143 | ## 联系作者 144 | 1、微信:dubaopeng123 145 | 2、QQ: 583037838 146 | -------------------------------------------------------------------------------- /application/d3layout/d3collide-v3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | GraphVis-开发示例 7 | 8 | 9 | 10 | 11 | 12 |
13 |
14 | 15 |
16 | 31 |
32 | 33 |
34 | 37 |
38 |
39 | 46 |
47 |
48 |
49 |
50 | 52 |
53 |
54 | 57 |
58 | 59 |
60 | 注:选择对应布局算法后,可以【运行布局】对图数据进行可视化视觉调整,当布局效果达到预期时,可以【停止布局】进行其他操作。 61 | 在布局过程中,还可以修改算法参数,点击【应用】以实时调整可视化效果。 62 |
63 |
64 |
65 |
66 | 67 |
68 | 75 |
76 |
77 | 78 | 79 | 80 | 91 | 92 | 93 | 94 | 100 | 101 | 102 | 103 | 109 | 110 | 111 | 112 | 121 | 122 | 123 | 124 | 137 | 138 | 139 | 140 | 146 | 147 | 148 | 149 | 155 | 156 | 157 | 158 | 164 | 165 |
节点形状 81 | 90 |
节点标签 95 | 99 |
标签包裹 104 | 108 |
标签位置 113 | 120 |
连线类型 125 | 136 |
连线样式 141 | 145 |
连线标签 150 | 154 |
连线箭头 159 | 163 |
166 |
167 |
168 |
169 | 170 |
171 | 178 |
179 |
180 |
181 | 182 | 183 | 184 | 187 | 188 | 189 | 190 | 193 | 194 |
红楼梦关系网络 185 | 选择 186 |
树形关系数据 191 | 选择 192 |
195 |
196 |
197 |
198 |
199 | 200 |
201 | 208 |
209 |
210 |
211 | 212 | 213 | 214 | 221 | 222 | 223 | 224 | 230 | 231 |
父节点数 215 | 220 |
子节点数 225 | 229 |
232 |
233 |
234 | 237 |
238 |
239 | 注:随机生成指定的节点和关系,可以双击节点进行数据查询,动态追加数据并布局 240 |
241 |
242 |
243 |
244 | 245 |
246 | 253 |
254 |
255 |
256 | 257 | 258 | 259 | 262 | 263 | 264 | 265 | 266 | 269 | 270 | 271 | 272 | 273 | 276 | 277 | 278 | 279 | 280 | 293 | 294 | 295 | 296 | 297 | 304 | 305 | 306 |
添加连线 260 | 开始添加 261 |
删除选中节点 267 | 删除 268 |
删除选中连线 274 | 删除 275 |
节点操作 281 | 292 |
连线操作 298 | 303 |
307 |
308 | 309 |
310 |
311 |
312 | 313 |
314 | 321 |
322 |
323 |
324 | 325 | 搜索 326 |
327 |
328 | 329 |
330 |
331 |
332 |
333 | 334 |
335 | 342 |
343 |
344 |
345 | 346 |
347 |
348 | 349 |
350 |
351 | 354 |
355 |
356 |
357 |
358 | 359 |
360 |
361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | -------------------------------------------------------------------------------- /application/d3layout/d3layout-v3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | GraphVis-开发示例 7 | 8 | 9 | 10 | 11 | 12 |
13 |
14 | 15 |
16 | 31 |
32 | 33 |
34 | 37 |
38 |
39 | 46 |
47 |
48 |
49 |
50 | 52 |
53 |
54 | 57 |
58 | 59 |
60 | 注:选择对应布局算法后,可以【运行布局】对图数据进行可视化视觉调整,当布局效果达到预期时,可以【停止布局】进行其他操作。 61 | 在布局过程中,还可以修改算法参数,点击【应用】以实时调整可视化效果。 62 |
63 |
64 |
65 |
66 | 67 |
68 | 75 |
76 |
77 | 78 | 79 | 80 | 91 | 92 | 93 | 94 | 100 | 101 | 102 | 103 | 109 | 110 | 111 | 112 | 121 | 122 | 123 | 124 | 137 | 138 | 139 | 140 | 146 | 147 | 148 | 149 | 155 | 156 | 157 | 158 | 164 | 165 |
节点形状 81 | 90 |
节点标签 95 | 99 |
标签包裹 104 | 108 |
标签位置 113 | 120 |
连线类型 125 | 136 |
连线样式 141 | 145 |
连线标签 150 | 154 |
连线箭头 159 | 163 |
166 |
167 |
168 |
169 | 170 |
171 | 178 |
179 |
180 |
181 | 182 | 183 | 184 | 187 | 188 | 189 | 190 | 193 | 194 |
红楼梦关系网络 185 | 选择 186 |
树形关系数据 191 | 选择 192 |
195 |
196 |
197 |
198 |
199 | 200 |
201 | 208 |
209 |
210 |
211 | 212 | 213 | 214 | 221 | 222 | 223 | 224 | 230 | 231 |
父节点数 215 | 220 |
子节点数 225 | 229 |
232 |
233 |
234 | 237 |
238 |
239 | 注:随机生成指定的节点和关系,可以双击节点进行数据查询,动态追加数据并布局 240 |
241 |
242 |
243 |
244 | 245 |
246 | 253 |
254 |
255 |
256 | 257 | 258 | 259 | 262 | 263 | 264 | 265 | 266 | 269 | 270 | 271 | 272 | 273 | 276 | 277 | 278 | 279 | 280 | 293 | 294 | 295 | 296 | 297 | 304 | 305 | 306 |
添加连线 260 | 开始添加 261 |
删除选中节点 267 | 删除 268 |
删除选中连线 274 | 删除 275 |
节点操作 281 | 292 |
连线操作 298 | 303 |
307 |
308 | 309 |
310 |
311 |
312 | 313 |
314 | 321 |
322 |
323 |
324 | 325 | 搜索 326 |
327 |
328 | 329 |
330 |
331 |
332 |
333 | 334 |
335 | 342 |
343 |
344 |
345 | 346 |
347 |
348 | 349 |
350 |
351 | 354 |
355 |
356 |
357 |
358 | 359 |
360 |
361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | -------------------------------------------------------------------------------- /application/d3layout/d3layout-v4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | GraphVis-开发示例 7 | 8 | 9 | 10 | 11 | 12 |
13 |
14 | 15 |
16 | 31 |
32 | 33 |
34 | 37 |
38 |
39 | 46 |
47 |
48 |
49 |
50 | 52 |
53 |
54 | 57 |
58 | 59 |
60 | 注:选择对应布局算法后,可以【运行布局】对图数据进行可视化视觉调整,当布局效果达到预期时,可以【停止布局】进行其他操作。 61 | 在布局过程中,还可以修改算法参数,点击【应用】以实时调整可视化效果。 62 |
63 |
64 |
65 |
66 | 67 |
68 | 75 |
76 |
77 | 78 | 79 | 80 | 91 | 92 | 93 | 94 | 100 | 101 | 102 | 103 | 109 | 110 | 111 | 112 | 121 | 122 | 123 | 124 | 137 | 138 | 139 | 140 | 146 | 147 | 148 | 149 | 155 | 156 | 157 | 158 | 164 | 165 |
节点形状 81 | 90 |
节点标签 95 | 99 |
标签包裹 104 | 108 |
标签位置 113 | 120 |
连线类型 125 | 136 |
连线样式 141 | 145 |
连线标签 150 | 154 |
连线箭头 159 | 163 |
166 |
167 |
168 |
169 | 170 |
171 | 178 |
179 |
180 |
181 | 182 | 183 | 184 | 187 | 188 | 189 | 190 | 193 | 194 |
红楼梦关系网络 185 | 选择 186 |
树形关系数据 191 | 选择 192 |
195 |
196 |
197 |
198 |
199 | 200 |
201 | 208 |
209 |
210 |
211 | 212 | 213 | 214 | 221 | 222 | 223 | 224 | 230 | 231 |
父节点数 215 | 220 |
子节点数 225 | 229 |
232 |
233 |
234 | 237 |
238 |
239 | 注:随机生成指定的节点和关系,可以双击节点进行数据查询,动态追加数据并布局 240 |
241 |
242 |
243 |
244 | 245 |
246 | 253 |
254 |
255 |
256 | 257 | 258 | 259 | 262 | 263 | 264 | 265 | 266 | 269 | 270 | 271 | 272 | 273 | 276 | 277 | 278 | 279 | 280 | 293 | 294 | 295 | 296 | 297 | 304 | 305 | 306 |
添加连线 260 | 开始添加 261 |
删除选中节点 267 | 删除 268 |
删除选中连线 274 | 删除 275 |
节点操作 281 | 292 |
连线操作 298 | 303 |
307 |
308 | 309 |
310 |
311 |
312 | 313 |
314 | 321 |
322 |
323 |
324 | 325 | 搜索 326 |
327 |
328 | 329 |
330 |
331 |
332 |
333 | 334 |
335 | 342 |
343 |
344 |
345 | 346 |
347 |
348 | 349 |
350 |
351 | 354 |
355 |
356 |
357 |
358 | 359 |
360 |
361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | -------------------------------------------------------------------------------- /application/d3layout/style/bootstrap/fontawesome/css/font-awesome.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} 5 | -------------------------------------------------------------------------------- /application/d3layout/style/bootstrap/fontawesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dubaopeng/GraphVis/87670cbd8f1a18145e4f3e4ab36eb499670c62a7/application/d3layout/style/bootstrap/fontawesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /application/d3layout/style/bootstrap/fontawesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dubaopeng/GraphVis/87670cbd8f1a18145e4f3e4ab36eb499670c62a7/application/d3layout/style/bootstrap/fontawesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /application/d3layout/style/bootstrap/fontawesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dubaopeng/GraphVis/87670cbd8f1a18145e4f3e4ab36eb499670c62a7/application/d3layout/style/bootstrap/fontawesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /application/d3layout/style/bootstrap/fontawesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dubaopeng/GraphVis/87670cbd8f1a18145e4f3e4ab36eb499670c62a7/application/d3layout/style/bootstrap/fontawesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /application/d3layout/style/bootstrap/fontawesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dubaopeng/GraphVis/87670cbd8f1a18145e4f3e4ab36eb499670c62a7/application/d3layout/style/bootstrap/fontawesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /application/d3layout/style/style.css: -------------------------------------------------------------------------------- 1 | html,body{overflow: hidden;} 2 | .wrapper-panel { 3 | position: absolute; 4 | top: 0px; 5 | left: 0px; 6 | width: 100%; 7 | height: 100%; 8 | background: #ebebeb; 9 | } 10 | .right-side{position: absolute;width:250px;right:0;height:100%;border:1px solid #ccc;background: #fafafa;} 11 | .right-side .params-warp{ 12 | min-height:50px; 13 | border: 1px solid #e7e4e4; 14 | margin: 5px 0; 15 | padding: 2px; 16 | } 17 | .right-side .side-bar-btn.right{ 18 | position: absolute;bottom: 0;font-size:20px; 19 | } 20 | .right-side .side-bar-btn.left{ 21 | position: absolute;bottom: 0;font-size:20px; 22 | transform: rotate(180deg); 23 | -webkit-transform: rotate(180deg); 24 | -o-transform: rotate(180deg); 25 | -ms-transform: rotate(180deg); 26 | } 27 | 28 | .side-bar-btn > a{ 29 | color: #bbbbbd; 30 | } 31 | .side-bar-btn > a:hover{ 32 | color: #888; 33 | } 34 | 35 | .left-toolbar { 36 | position: absolute; 37 | top: 0; 38 | left: 0; 39 | width: 45px; 40 | height: 100%; 41 | background-color: #fafafa; 42 | border-right: 1px solid #e5e2e2; 43 | } 44 | 45 | .bottom-toolbar { 46 | position: absolute; 47 | bottom: 0; 48 | left: 45px; 49 | height: 30px; 50 | width: calc(100% - 45px); 51 | background-color: #fafafa; 52 | } 53 | 54 | .left-toolbar > ul{ 55 | padding: 0; 56 | } 57 | 58 | .bottom-toolbar > ul{ 59 | display: inline-block; 60 | padding: 0; 61 | } 62 | 63 | .left-toolbar li { 64 | display: block; 65 | font-size: 15px; 66 | text-align: center; 67 | height: 35px; 68 | color: #066fba; 69 | line-height: 35px; 70 | cursor: pointer; 71 | padding: 0; 72 | } 73 | 74 | .left-toolbar li.end { 75 | border-bottom: 1px solid #ccc; 76 | margin-bottom: 3px; 77 | } 78 | 79 | .left-toolbar li:hover,.left-toolbar li.active{ 80 | background-color: #6ea36d; 81 | color: #fff; 82 | } 83 | 84 | .bottom-toolbar >ul > li{ 85 | display: inline-block; 86 | font-size: 14px; 87 | text-align: center; 88 | width: 30px; 89 | color: #ccc9c9; 90 | line-height: 30px; 91 | cursor: pointer; 92 | padding: 0; 93 | list-style: none; 94 | } 95 | 96 | 97 | .select { 98 | display: inline-block; 99 | width: 215px; 100 | height: 30px; 101 | position: relative; 102 | vertical-align: middle; 103 | padding: 0; 104 | overflow: hidden; 105 | background-color: #fff; 106 | color: #555; 107 | border: 1px solid #aaa; 108 | text-shadow: none; 109 | transition: box-shadow 0.25s ease; 110 | z-index: 2; 111 | } 112 | 113 | 114 | .small-table{ 115 | color: #fff; 116 | height: auto; 117 | width: 100%; 118 | min-height:50px; 119 | } 120 | 121 | .small-table tr td{ 122 | padding: 10px 8px; 123 | border: 1px solid #e2e5e7; 124 | color: #505253; 125 | font-size: 12px; 126 | } 127 | 128 | .small-table td > input{ 129 | width:80px; 130 | margin:0 5px; 131 | padding:0 5px; 132 | color: #333; 133 | } 134 | 135 | .small-selector{ 136 | width: 100px; 137 | height:22px; 138 | } 139 | .longbtn{ 140 | margin-top:5px;text-align: center; 141 | } 142 | .tiptext{ 143 | font-size: 11px; 144 | color: #aaa; 145 | margin-top: 5px; 146 | } 147 | .panel-group .panel { 148 | margin-bottom: 0; 149 | border-radius: 0; 150 | } 151 | .panel-info { 152 | border-color: #e3eaec; 153 | } 154 | .panel-info>.panel-heading { 155 | color: #6e7070; 156 | background-color: #f0f0f0; 157 | border-color: #eef1f2; 158 | } 159 | 160 | .panel-group .panel+.panel { 161 | margin-top: 0px; 162 | } 163 | 164 | #nodeInfo{ 165 | width: 100%; 166 | height: 120px; 167 | border: 1px solid #ddd; 168 | margin-top: 5px; 169 | } 170 | -------------------------------------------------------------------------------- /application/graph/README.md: -------------------------------------------------------------------------------- 1 | # 复杂网络图应用 -------------------------------------------------------------------------------- /application/neo4j/README.md: -------------------------------------------------------------------------------- 1 | # Neo4j图数据库可视化应用 -------------------------------------------------------------------------------- /application/network/README.md: -------------------------------------------------------------------------------- 1 | # 网络拓扑图应用 -------------------------------------------------------------------------------- /application/sna/README.md: -------------------------------------------------------------------------------- 1 | # 社交网络分析应用 -------------------------------------------------------------------------------- /application/workflow/README.md: -------------------------------------------------------------------------------- 1 | # 工作流应用 2 | 3 | 4 | 数据处理流程图示例:[http://www.graphvis.cn/graph/workflow/index.html](http://www.graphvis.cn/graph/workflow/index.html) 5 | -------------------------------------------------------------------------------- /demo/README.md: -------------------------------------------------------------------------------- 1 | ### 注意事项: 2 | 1、该组件会定期更新优化,增加新接口,如果使用请保持关注,及时下载更新。 3 | 2、示例代码可自行取消注释,查看效果,显示图标,需要放在服务容器中查看。 4 | 3、如有特殊需要,也可接受定制开发。 5 | 6 | #### 说明:开发人员可以基于该组件提供的接口,快速构建图可视化分析应用。 7 | 8 | 包括三大部分: 9 | 1、可视化绘图组件,可以绘制各类形状的节点、连线,可以设置节点图标。 10 | 2、丰富的布局算法库 11 | 3、常用的经典社区划分算法 12 | 13 | 基于上述部分,同时提供常用的分析接口,如:图的各类指标统计计算、路径分析、关联分析等。 14 | 当前已支持动态追加节点及边数据,进行动态布局扩展功能。 15 | 16 | 17 | 主页:http://www.graphvis.cn 18 | 19 | 开发文档地址:http://www.graphvis.cn/graph/dev-doc/index.html 20 | 21 | 复杂网络分析实例:http://www.graphvis.cn/graph/complex/index.html 22 | 23 | 案件分析实例:http://www.graphvis.cn/graph/network/index.html 24 | 25 | 知识图谱实例:http://www.graphvis.cn/knowlege/index.html 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /demo/demo.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | GraphVis-开发示例 7 | 8 | 9 | 10 | 11 | 12 |
13 |
14 | 15 |
16 | 31 |
32 | 33 |
34 | 37 |
38 |
39 | 46 |
47 |
48 |
49 |
50 | 51 |
52 |
53 |
54 | 57 | 60 |
61 | 62 |
63 | 注:选择对应布局算法后,可以【运行布局】对图数据进行可视化视觉调整,当布局效果达到预期时,可以【停止布局】进行其他操作。 64 | 在布局过程中,还可以修改算法参数,点击【应用】以实时调整可视化效果。 65 |
66 |
67 |
68 |
69 |
70 | 77 |
78 |
79 |
80 |
81 | 82 | 83 | 84 | 90 | 91 | 92 | 93 | 99 | 100 |
聚类效果 85 | 89 |
区域重叠 94 | 98 |
101 |
102 |
103 | 106 |
107 |
108 | 注:聚类算法提供两种效果,仅颜色区分不同群组,颜色加圆形区域,使用区域区分时可以设置群组区域不重叠。 109 |
110 |
111 |
112 |
113 |
114 | 121 |
122 |
123 | 124 | 125 | 126 | 137 | 138 | 139 | 140 | 146 | 147 | 148 | 149 | 155 | 156 | 157 | 158 | 167 | 168 | 169 | 170 | 183 | 184 | 185 | 186 | 192 | 193 | 194 | 195 | 201 | 202 | 203 | 204 | 210 | 211 |
节点形状 127 | 136 |
节点标签 141 | 145 |
标签包裹 150 | 154 |
标签位置 159 | 166 |
连线类型 171 | 182 |
连线样式 187 | 191 |
连线标签 196 | 200 |
连线箭头 205 | 209 |
212 |
213 |
214 |
215 | 216 |
217 | 224 |
225 |
226 |
227 | 228 | 229 | 230 | 233 | 234 | 235 | 236 | 239 | 240 |
红楼梦关系网络 231 | 选择 232 |
树形关系数据 237 | 选择 238 |
241 |
242 |
243 |
244 |
245 | 246 |
247 | 254 |
255 |
256 |
257 | 258 | 259 | 260 | 267 | 268 | 269 | 270 | 276 | 277 |
父节点数 261 | 266 |
子节点数 271 | 275 |
278 |
279 |
280 | 283 |
284 |
285 | 注:随机生成指定的节点和关系,可以双击节点进行数据查询,动态追加数据并布局 286 |
287 |
288 |
289 |
290 | 291 |
292 | 299 |
300 |
301 |
302 | 303 | 304 | 305 | 308 | 309 | 310 | 311 | 312 | 315 | 316 | 317 | 318 | 319 | 322 | 323 | 324 | 325 | 326 | 339 | 340 | 341 | 342 | 343 | 350 | 351 | 352 |
添加连线 306 | 开始添加 307 |
删除选中节点 313 | 删除 314 |
删除选中连线 320 | 删除 321 |
节点操作 327 | 338 |
连线操作 344 | 349 |
353 |
354 | 355 |
356 |
357 |
358 | 359 |
360 | 367 |
368 |
369 |
370 | 371 | 搜索 372 |
373 |
374 | 375 |
376 |
377 |
378 |
379 | 380 |
381 | 388 |
389 |
390 |
391 | 392 |
393 |
394 | 395 |
396 |
397 | 400 |
401 |
402 |
403 |
404 | 405 |
406 |
407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | -------------------------------------------------------------------------------- /demo/js/visgraph-community.min.js: -------------------------------------------------------------------------------- 1 | ;eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}(';(8(){7 22=8(A,I){E.A=A;E.I=I;E.1g=[];E.1m=[];E.2k={};E.1O={};E.3n={};E.3o=[];E.23=0};22.10.24=8(){7 c=E;z(c.A.D==0){o}7 1P=[];c.A.G(8(a){c.2k[a.H]=0});c.23=E.A.D;c.A.G(8(a){z(c.2k[a.H]==0){c.23=c.A.D;c.3p(a,1P);z(c.A.D-c.23==1){7 s=[a];1P.L(s)}}});7 1h=1;7 11={};1P.G(8(Y){7 V=1f();7 W=\'K\'+(1h++);Y.G(8(a){a.25=V;a.K=W});11[W]={\'V\':V,\'1B\':Y.D,\'26\':(Y.D/c.A.D)}});o 11;8 1f(){o C.S(X*C.T())+","+C.S(X*C.T())+","+C.S(X*C.T())}};22.10.3p=8(v,1P){7 c=E;7 2F=c.23;c.2k[v.H]=2F;c.23--;c.1O[v.H]=2F;7 2G=c.4u(v)||[];2G.G(8(w){7 3q=c.2k[w.H];7 3r=c.4v(v,w);z(3q==0){c.3n[w.H]=v.H;c.3o.L(3r);c.3p(w,1P);7 3s=c.1O[w.H]||0;z(3s<=2F){7 2H=[];7 e;5I{e=c.3o.5J();2H.L(e.O);2H.L(e.M)}1Q(e!=3r);1P.L(2H)}c.1O[v.H]=C.2I(3s,c.1O[v.H]||0)}1b z(w.H!=c.3n[v.H]){c.1O[v.H]=C.2I(3q,c.1O[v.H]||0)}})};22.10.4u=8(a){7 c=E;7 1m=[];7 1r=a.1r||[];1r.G(8(U){7 M=U.M;7 O=U.O;z(O.H!=M.H){7 1R=c.1g.2l(M.H);7 2J=c.1m[1R]||[];7 27=[];2J.G(8(n){27.L(n.H)});z(27.2l(a.H)==-1){1m.L(M)}}});o 1m};22.10.4v=8(O,4w){7 U;(O.1r||[]).G(8(3t){z(3t.M.H==4w.H){U=3t;o U}});o U};7 2K=8(A,I){E.A=A;E.I=I;E.1g=[];E.1m=[]};2K.10.24=8(){7 c=E;7 1S=[];c.A.G(8(a){1S.L(a);c.1g.L(a.H);7 4x=c.3u(a);c.1m.L(4x)});7 13=[];1Q(1S.D>0){7 K=[];7 3v=1S[0];1S.3w(0,1);K.L(3v);7 2m=[];2m.L(3v);1Q(2m.D>0){7 a=2m.3w(0,1)[0];7 2G=c.3u(a);2G.G(8(2L){7 1R=1S.2l(2L);z(1R!=-1){2m.L(2L);1S.3w(1R,1);K.L(2L)}})}13.L(K)}7 1h=1;7 11={};13.G(8(Y){7 V=1f();7 W=\'K\'+(1h++);Y.G(8(a){a.25=V;a.K=W});11[W]={\'V\':V,\'1B\':Y.D,\'26\':(Y.D/c.A.D)}});o 11;8 1f(){o C.S(X*C.T())+","+C.S(X*C.T())+","+C.S(X*C.T())}};2K.10.3u=8(a){7 28=E;7 1m=[];7 1r=a.1r||[];1r.G(8(U){7 M=U.M;7 O=U.O;z(O.H!=M.H){7 1R=28.1g.2l(M.H);7 2J=28.1m[1R]||[];7 27=[];2J.G(8(n){27.L(n.H)});z(27.2l(a.H)==-1){1m.L(M)}}});o 1m};7 2M=8(A,I){E.A=A;E.I=I};2M.10.24=8(){7 c=E;z(c.A.D==0){o}1n n=c.A.D;1n m=c.I.D;1n 2N=c.A;1n 29=1i 2O(n);1n 1H=1i 2O(n*n);1n 2n=1i 2O(n);1n 1c=1i 2O(n);7 K={};R(1j i=0;i1;--3z){1j 2Q=-4z;1j 1I;1j 1T;R(1j i=0;i2Q){2Q=3A;1T=i;1I=j}}}29[1T]+=29[1I]+1H[1T*n+1I];R(1j i=0;i3y){3y=q;R(1j i=0;i3J){3J=2p;2X=2Y}3I[2Y]=2p}}};8 4M(3K){z(3C===\'1K\')o 3K;z(3C===\'5K\')o!3K;o 1s};8 4J(N,1o,4N){7 a=3L(N);7 I=[];(a.1r||[]).G(8(4O){I.L(4O)});(a.4y||[]).G(8(4P){I.L(4P)});z(a&&I&&1k 1o===\'8\'){z(4N){o 4Q(I,N,1o)}1b{o 4R(I,N,1o)}}};8 3L(N){o 1V[N]};8 4R(I,N,1o){7 2b;R(7 i=0;i>>19))&2c;Z=((Z+5Q)+(Z<<5))&2c;Z=((Z+5R)^(Z<<9))&2c;Z=((Z+5S)+(Z<<3))&2c;Z=((Z^5T)^(Z>>>16))&2c;o(Z&5U)/5V};o{2q:8(4W){o C.S(3O()*4W)},5W:8(){o 3O()}}};8 4G(17,3P){7 2Z=3P||3F();z(1k 2Z.2q!==\'8\'){30 1i 5X(\'3P 5Y 5Z 61 62 63: 2q() 8 64 65\');}o{G:8(1o){7 i,j,t;R(i=17.D-1;i>0;--i){j=2Z.2q(i+1);t=17[j];17[j]=17[i];17[i]=t;1o(t)}z(17.D){1o(17[0])}},66:8(){7 i,j,t;R(i=17.D-1;i>0;--i){j=2Z.2q(i+1);t=17[j];17[j]=17[i];17[i]=t}o 17}}}}};7 3Q=8(A,I){E.A=A;E.I=I;E.1V={}};3Q.10.24=8(){7 c=E;7 4X=8(){7 4Y=-1;7 3R=0.67;7 31;7 3S;7 1W={};7 2r;7 2s={};7 1t=[];8 3T(17){7 3U={};17.G(8(d,i){3U[d]=1s});o 1X.1Y(3U)};8 3V(1p){7 3W=[];R(7 1d 1K 1p){z(1p.68(1d)){3W.L(1p[1d])}}o 3W};8 3X(F,a){7 2d=F.14[a]?1X.1Y(F.14[a]):[];7 P=0;2d.G(8(1q,i){7 1C=F.14[a][1q]||1;z(a===1q){1C*=2}P+=1C});o P};8 3Y(F,a){z(1k F.14[a]===\'1u\'){o[]}7 2d=1X.1Y(F.14[a]);o 2d};8 3Z(F,40,4Z){o F.14[40]?F.14[40][4Z]:1u};8 50(F){7 1B=0;F.1v.G(8(J){1B+=J.P});o 1B};8 51(F,J){52(F,J);z(2s[J.O+\'41\'+J.M]){F.1v[2s[J.O+\'41\'+J.M]].P=J.P}1b{F.1v.L(J);2s[J.O+\'41\'+J.M]=F.1v.D-1}};8 53(54){7 1M={};54.G(8(J,i){1M[J.O]=1M[J.O]||{};1M[J.O][J.M]=J.P;1M[J.M]=1M[J.M]||{};1M[J.M][J.O]=J.P});o 1M};8 52(F,J){F.14[J.O]=F.14[J.O]||{};F.14[J.O][J.M]=J.P;F.14[J.M]=F.14[J.M]||{};F.14[J.M][J.O]=J.P};8 1Z(1p){z(1p===1J||1k(1p)!==\'55\')o 1p;7 43=1p.69();R(7 1d 1K 1p){43[1d]=1Z(1p[1d])}o 43};8 32(F,B,20){B[\'1w\']={};B[\'33\']=0;B[\'1D\']={};B[\'1x\']={};B[\'2e\']={};B[\'2t\']={};B[\'33\']=50(F);z(1k 20===\'1u\'){F.A.G(8(a,i){B.1w[a]=i;7 21=3X(F,a);z(21<0)30\'56 F 57, 58 59 2f!\';B.1x[i]=21;B.2e[a]=21;B.2t[a]=3Z(F,a,a)||0;B.1D[i]=B.2t[a]})}1b{F.A.G(8(a,i){7 Q=20[a];B.1w[a]=Q;7 21=3X(F,a);B.1x[Q]=(B.1x[Q]||0)+21;B.2e[a]=21;7 34=0.0;7 2d=3Y(F,a);2d.G(8(1q,i){7 P=F.14[a][1q];z(P<=0){30"56 F 57, 58 59 2f";}z(20[1q]===Q){z(1q===a){34+=P}1b{34+=P/2.0}}});B.1D[Q]=(B.1D[Q]||0)+34})}};8 2g(B){7 I=B.33;7 35=0.0;7 1c=3T(3V(B.1w));1c.G(8(Q,i){7 5a=B.1D[Q]||0;7 5b=B.1x[Q]||0;z(I>0){35=35+5a/I-C.6a((5b/(2.0*I)),2)}});o 35};8 5c(a,F,B){7 2f={};7 5d=3Y(F,a);5d.G(8(1q,i){z(1q!==a){7 P=F.14[a][1q]||1;7 44=B.1w[1q];2f[44]=(2f[44]||0)+P}});o 2f};8 5e(a,Q,P,B){B.1w[a]=+Q;B.1x[Q]=(B.1x[Q]||0)+(B.2e[a]||0);B.1D[Q]=(B.1D[Q]||0)+P+(B.2t[a]||0)};8 5f(a,Q,P,B){B.1x[Q]=((B.1x[Q]||0)-(B.2e[a]||0));B.1D[Q]=((B.1D[Q]||0)-P-(B.2t[a]||0));B.1w[a]=-1};8 45(36){7 2u=0;7 1y=1Z(36);7 37={};7 5g=1X.1Y(36);5g.G(8(1d){7 1C=36[1d];7 38=1k 37[1C]===\'1u\'?-1:37[1C];z(38===-1){37[1C]=2u;38=2u;2u=2u+1}1y[1d]=38;1t.L([1Z(1y)])});o 1y};8 46(F,B){7 39=1s;7 47=0;7 3a=2g(B);7 1E=3a;1Q(39&&47!==4Y){3a=1E;39=2P;47+=1;F.A.G(8(a,i){7 2v=B.1w[a];7 5h=(B.2e[a]||0)/(B.33*2.0);7 2w=5c(a,F,B);5f(a,2v,(2w[2v]||0.0),B);7 2x=2v;7 48=0;7 5i=1X.1Y(2w);5i.G(8(Q,i){7 49=2w[Q]-(B.1x[Q]||0.0)*5h;z(49>48){48=49;2x=Q}});5e(a,2x,2w[2x]||0,B);z(2x!==2v){39=1s}});1E=2g(B);z(1E-3a<3R){18}}};8 4a(1a,F){7 1y={A:[],1v:[],14:{}};7 4b,P;7 5j=3V(1a);1y.A=1y.A.6b(3T(5j));F.1v.G(8(J,i){P=J.P||1;7 4c=1a[J.O];7 4d=1a[J.M];4b=(3Z(1y,4c,4d)||0);7 5k=(4b+P);51(1y,{\'O\':4c,\'M\':4d,\'P\':5k})});2s={};o 1y};8 3b(1F,5l){7 1a=1Z(1F[0]);R(7 i=1;i<5l+1;i++){1X.1Y(1a).G(8(1d,j){7 a=1d;7 Q=1a[1d];1a[a]=1F[i][Q]})}o 1a};8 4e(F,5m){z(F.1v.D===0){7 20={};F.A.G(8(a,i){20[a]=a});o 20}7 B={};32(1W,B,5m);7 3c=2g(B);7 2y=[];46(1W,B);7 1E=2g(B);7 1a=45(B.1w);2y.L(1a);3c=1E;7 2h=4a(1a,1W);32(2h,B);1Q(1s){46(2h,B);1E=2g(B);1t.L(1Z(2y));z(1E-3c<3R){18}1a=45(B.1w);2y.L(1a);3c=1E;2h=4a(1a,2h);32(2h,B)}o 2y};7 4f={};7 1z=8(){7 B={};7 1F=4e(1W,2r);4f=1F;o 3b(1F,1F.D-1)};7 1A=-1;1z.6c=8(){1A=-1;1t=[]};1z.5n=8(){z(1A==-1){7 1F=4e(1W,2r);4f=1Z(1F)}z(1A<1t.D){1A+=1;z(1t[1A]==1u){o 3b(1t[1A-1],1t[1A-1].D-1)}o 3b(1t[1A],1t[1A].D-1)}1b{o 1u}};1z.A=8(5o){z(4g.D>0){31=5o}o 1z};1z.1v=8(4h){z(1k 31===\'1u\')30\'6d 6e 6f F A 6g!\';z(4g.D>0){3S=4h;7 5p=53(4h);1W={\'A\':31,\'1v\':3S,\'14\':5p}}o 1z};1z.2r=8(5q){z(4g.D>0){2r=5q}o 1z};o 1z};8 1f(){o C.S(X*C.T())+","+C.S(X*C.T())+","+C.S(X*C.T())};7 4i=[],4j=[];c.A.G(8(a){4i.L(a.H);c.1V[a.H]=a});c.I.G(8(U){4j.L({O:U.O.H,M:U.M.H,P:U.P})});7 5r=4X().A(4i).1v(4j);7 2a=1s;7 2i,3d;1Q(2a){3d=5r.5n();z(3d==1u){2a=2P}1b{2i=3d}}1c={};1X.1Y(2i).G(8(k){z(2i[k]1K 1c){1c[2i[k]].L(k)}1b{1c[2i[k]]=[k]}});7 1h=1;7 11={};R(7 15 1K 1c){7 1L=1c[15]||[];7 V=1f();7 W=\'K\'+(1h++);1L.G(8(N){7 a=c.1V[N];a.25=V;a.K=W});11[W]={\'V\':V,\'1B\':1L.D,\'26\':(1L.D/c.A.D)}}o 11};7 1N=8(A){E.A=A;E.1e=[];E.2j=5;E.5s=[]};1N.10.24=8(4k){7 c=E;z(4k){E.2j=2z(4k[\'2j\']||5)}E.5t();E.4l();E.1e=E.5u();E.4l();7 13={};E.A.G(8(a){7 15=a.15;z(15>=0){7 Y=13[15];z(Y){Y.L(a)}1b{Y=[a]}13[15]=Y}});7 1h=1;7 11={};R(7 2R 1K 13){7 Y=13[2R];7 V=1f();7 W=\'K\'+(1h++);Y.G(8(a){a.25=V;a.K=W});11[W]={\'V\':V,\'1B\':Y.D,\'26\':(Y.D/c.A.D)}}o 11;8 1f(){o C.S(X*C.T())+","+C.S(X*C.T())+","+C.S(X*C.T())}};1N.10.5t=8(u,v){7 c=E;E.1e=[];E.2j=E.2j;E.5s=[];7 2A=2z.5v,4m=2z.5w,3e=2z.5v,3f=2z.5w;R(i=0;i0){7 3h=0;7 3i=0;7 1G=c.1e[j].1G;R(7 i=0;i<1G.D;i++){7 p=c.A[1G[i]];3h+=p.x;3i+=p.y}3h/=1G.D;3i/=1G.D;3g.L({x:3h,y:3i,15:j})}1b{3g.L(c.1e[j])}}o 3g};1N.10.4o=8(4p,4q){7 4r=4q.x-4p.x;7 4s=4q.y-4p.y;o 4r*4r+4s*4s};1N.10.6h=8(h,s,v){7 r,g,b;z(s===0){7 3j=C.3k(v);o 6i(3j,3j,3j)}z(h<0){h+=5B}h=h%5B;s=s/X;7 4t=C.S(h/60)%6;7 f=(h/60)-4t;7 p=C.3k(v*(1-s));7 q=C.3k(v*(1-f*s));7 t=C.3k(v*(1-(1-f)*s));5C(4t){1l 0:r=v;g=t;b=p;18;1l 1:r=q;g=v;b=p;18;1l 2:r=p;g=v;b=t;18;1l 3:r=p;g=q;b=v;18;1l 4:r=t;g=p;b=v;18;1l 5:r=v;g=p;b=q;18;5D:18}o r+\',\'+g+\',\'+b};7 3l=8(2C){z(!2C||2C==1J){o}E.F={A:2C.A||[],I:2C.I||[]}};3l.10.6j=8(2D){z(2D==1J){o}o E.5E(2D)};3l.10.5E=8(2D){7 28=E;7 A=28.F.A||[];7 I=28.F.I||[];7 K;5C(2D){1l\'6k\':K=1i 22(A,I);18;1l\'6l\':K=1i 2K(A,I);18;1l\'6m\':K=1i 2M(A,I);18;1l\'6n\':K=1i 3B(A,I);18;1l\'6o\':K=1i 3Q(A,I);18;1l\'6p\':K=1i 1N(A,I);18;5D:18}z(!K){o}o K};7 2E=3l;z(1k 5F!==\'1u\'&&1k 5G===\'55\'){5F.5G=2E}1b z(1k 3m===\'8\'&&(3m.6q||3m.6r)){3m(8(){o 2E})}1b{E.2E=2E}}).6s(E||(1k 5H!==\'1u\'?5H:6t));',62,402,'|||||||var|function||node||self||||||||||||return|||||||||||if|nodes|status|Math|length|this|graph|forEach|id|links|edge|cluster|push|target|nodeId|source|weight|com|for|floor|random|link|color|clusterKey|255|clusterNodes|seed|prototype|clusterResult||clusters|_assoc_mat|clusterId||array|break||partition|else|communities|key|centroids|randomColor|nodeIds|clusterNo|new|let|typeof|case|nodeNeighbers|const|callback|obj|neighbour|outLinks|true|status_listS|undefined|edges|nodes_to_com|degrees|ret|core|nextS|size|value|internals|new_mod|dendogram|bestMatches|nb|fromIndex|null|in|_nodeIds|mat|KMeansCluster|high|bicomponents|while|index|unvisitedNodes|toIndex|classMap|idMapNode|original_graph|Object|keys|clone|part|deg|BicomponentClusterer|converse_depth|applay|fillColor|rate|childNodeIds|_self|ck|runFlag|quitFast|0xffffffff|neighbours|gdegrees|weights|__modularity|current_graph|befor_community_result|numClusters|dfs_num|indexOf|queue|mask|createClusterMap|counter|next|partition_init|edge_index|loops|count|com_node|neigh_communities|best_com|status_list|Number|minX|bestMatch|_graph|clusterType|ClusterFactory|v_dfs_num|neighbors|bicomponent|max|childNodes|WeakCommpentClutser|neighbor|NewmanCluster|vertices|Array|false|deltaQMax|_clusterKey|step|getChangeRate|getIdMapNode|getClass|classChangesCount|maxClassName|otherNodeClass|localRandom|throw|original_graph_nodes|init_status|total_weight|inc|result|dict|new_values|new_value|modif|cur_mod|partition_at_level|mod|community_assignment_result|minY|maxY|newCentroids|ax|ay|val|round|ClusterFac|define|parents|stack|findBiconnectedComponents|w_dfs_num|vw|w_high|_link|initNodeNeighbers|root|splice|hasEdge|qMax|nc|deltaQ|ChineseWhisperCluster|kind|forEachCluster|changeRate|createRandom|iterator|newLevel|seenClasses|maxClassValue|isInLink|getNode|nodesInCluster|inputSeed|randomFunc|customRandom|LouvainCluster|__MIN|original_graph_edges|make_set|set|obj_values|vals|get_degree_for_node|get_neighbours_of_node|get_edge_weight|node1|_||temp|neighbourcom|__renumber|__one_level|nb_pass_done|best_increase|incr|induced_graph|w_prec|com1|com2|generate_dendogram|dendogramS|arguments|edgs|node_data|edge_data|config|clustering|maxX|bestMatchDist|getSquareDistance|p1|p2|dx|dy|hi|getNeighbors|findEdge|nodeB|neighbers|inLinks|Infinity|continue|createChineseWhisper|nodeMap|api|initInternalStructures|assignHighestClass|createRandomIterator|getHighestClassInTheNeighborhoodOf|currentLevel|forEachLinkedNode|visitNeighbour|otherNode|shouldUpdate|oriented|ol|il|forEachOrientedLink|forEachNonOrientedLink|linkedNodeId|_node|cb|reportToClient|maxValue|jLouvain|__PASS_MAX|node2|get_graph_size|add_edge_to_graph|update_assoc_mat|make_assoc_mat|edge_list|object|Bad|type|use|positive|in_degree|degree|__neighcom|neighboorhood|__insert|__remove|dict_keys|degc_totw|neigh_communities_entries|partition_values|new_weight|level|part_init|nextStep|nds|assoc_mat|prttn|community|colors|init|updateCentroids|MAX_VALUE|MIN_VALUE|min|width|abs|height|360|switch|default|getCluster|module|exports|window|do|pop|out|class|number|Date|0x7ed55d16|0xc761c23c|0x165667b1|0xd3a2646c|0xfd7046c5|0xb55a4f09|0xfffffff|0x10000000|nextDouble|Error|does|not||match|expected|API|is|missing|shuffle|0000001|hasOwnProperty|constructor|pow|concat|resetAll|Please|provide|the|first|hsv2rgb|styleRGB|createClutser|bicomponet|weakcommpent|newman|chinesewisper|louvain|kmeans|amd|cmd|call|global'.split('|'),0,{})); -------------------------------------------------------------------------------- /demo/style/bootstrap/bootstrap.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.3.7 (http://getbootstrap.com) 3 | * Copyright 2011-2016 Twitter, Inc. 4 | * Licensed under the MIT license 5 | */ 6 | if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); -------------------------------------------------------------------------------- /demo/style/bootstrap/fontawesome/css/font-awesome.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} 5 | -------------------------------------------------------------------------------- /demo/style/bootstrap/fontawesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dubaopeng/GraphVis/87670cbd8f1a18145e4f3e4ab36eb499670c62a7/demo/style/bootstrap/fontawesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /demo/style/bootstrap/fontawesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dubaopeng/GraphVis/87670cbd8f1a18145e4f3e4ab36eb499670c62a7/demo/style/bootstrap/fontawesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /demo/style/bootstrap/fontawesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dubaopeng/GraphVis/87670cbd8f1a18145e4f3e4ab36eb499670c62a7/demo/style/bootstrap/fontawesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /demo/style/bootstrap/fontawesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dubaopeng/GraphVis/87670cbd8f1a18145e4f3e4ab36eb499670c62a7/demo/style/bootstrap/fontawesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /demo/style/bootstrap/fontawesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dubaopeng/GraphVis/87670cbd8f1a18145e4f3e4ab36eb499670c62a7/demo/style/bootstrap/fontawesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /demo/style/style.css: -------------------------------------------------------------------------------- 1 | html,body{overflow: hidden;} 2 | .wrapper-panel { 3 | position: absolute; 4 | top: 0px; 5 | left: 0px; 6 | width: 100%; 7 | height: 100%; 8 | background: #ebebeb; 9 | } 10 | .right-side{position: absolute;width:250px;right:0;height:100%;border:1px solid #ccc;background: #fafafa;} 11 | .right-side .params-warp{ 12 | min-height:50px; 13 | border: 1px solid #e7e4e4; 14 | margin: 5px 0; 15 | padding: 2px; 16 | } 17 | .right-side .side-bar-btn.right{ 18 | position: absolute;bottom: 0;font-size:20px; 19 | } 20 | .right-side .side-bar-btn.left{ 21 | position: absolute;bottom: 0;font-size:20px; 22 | transform: rotate(180deg); 23 | -webkit-transform: rotate(180deg); 24 | -o-transform: rotate(180deg); 25 | -ms-transform: rotate(180deg); 26 | } 27 | 28 | .side-bar-btn > a{ 29 | color: #bbbbbd; 30 | } 31 | .side-bar-btn > a:hover{ 32 | color: #888; 33 | } 34 | 35 | .left-toolbar { 36 | position: absolute; 37 | top: 0; 38 | left: 0; 39 | width: 45px; 40 | height: 100%; 41 | background-color: #fafafa; 42 | border-right: 1px solid #e5e2e2; 43 | } 44 | 45 | .bottom-toolbar { 46 | position: absolute; 47 | bottom: 0; 48 | left: 45px; 49 | height: 30px; 50 | width: calc(100% - 45px); 51 | background-color: #fafafa; 52 | } 53 | 54 | .left-toolbar > ul{ 55 | padding: 0; 56 | } 57 | 58 | .bottom-toolbar > ul{ 59 | display: inline-block; 60 | padding: 0; 61 | } 62 | 63 | .left-toolbar li { 64 | display: block; 65 | font-size: 15px; 66 | text-align: center; 67 | height: 35px; 68 | color: #066fba; 69 | line-height: 35px; 70 | cursor: pointer; 71 | padding: 0; 72 | } 73 | 74 | .left-toolbar li.end { 75 | border-bottom: 1px solid #ccc; 76 | margin-bottom: 3px; 77 | } 78 | 79 | .left-toolbar li:hover,.left-toolbar li.active{ 80 | background-color: #6ea36d; 81 | color: #fff; 82 | } 83 | 84 | .bottom-toolbar >ul > li{ 85 | display: inline-block; 86 | font-size: 14px; 87 | text-align: center; 88 | width: 30px; 89 | color: #ccc9c9; 90 | line-height: 30px; 91 | cursor: pointer; 92 | padding: 0; 93 | list-style: none; 94 | } 95 | 96 | 97 | .select { 98 | display: inline-block; 99 | width: 215px; 100 | height: 30px; 101 | position: relative; 102 | vertical-align: middle; 103 | padding: 0; 104 | overflow: hidden; 105 | background-color: #fff; 106 | color: #555; 107 | border: 1px solid #aaa; 108 | text-shadow: none; 109 | transition: box-shadow 0.25s ease; 110 | z-index: 2; 111 | } 112 | 113 | 114 | .small-table{ 115 | color: #fff; 116 | height: auto; 117 | width: 100%; 118 | min-height:50px; 119 | } 120 | 121 | .small-table tr td{ 122 | padding: 10px 8px; 123 | border: 1px solid #e2e5e7; 124 | color: #505253; 125 | font-size: 12px; 126 | } 127 | 128 | .small-table td > input{ 129 | width:80px; 130 | margin:0 5px; 131 | padding:0 5px; 132 | color: #333; 133 | } 134 | 135 | .small-selector{ 136 | width: 100px; 137 | height:22px; 138 | } 139 | .longbtn{ 140 | margin-top:5px;text-align: center; 141 | } 142 | .tiptext{ 143 | font-size: 11px; 144 | color: #aaa; 145 | margin-top: 5px; 146 | } 147 | .panel-group .panel { 148 | margin-bottom: 0; 149 | border-radius: 0; 150 | } 151 | .panel-info { 152 | border-color: #e3eaec; 153 | } 154 | .panel-info>.panel-heading { 155 | color: #6e7070; 156 | background-color: #f0f0f0; 157 | border-color: #eef1f2; 158 | } 159 | 160 | .panel-group .panel+.panel { 161 | margin-top: 0px; 162 | } 163 | 164 | #nodeInfo{ 165 | width: 100%; 166 | height: 120px; 167 | border: 1px solid #ddd; 168 | margin-top: 5px; 169 | } 170 | -------------------------------------------------------------------------------- /dist/visgraph-community.min.js: -------------------------------------------------------------------------------- 1 | ;eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}(';(8(){7 22=8(A,I){E.A=A;E.I=I;E.1g=[];E.1m=[];E.2k={};E.1O={};E.3n={};E.3o=[];E.23=0};22.10.24=8(){7 c=E;z(c.A.D==0){o}7 1P=[];c.A.G(8(a){c.2k[a.H]=0});c.23=E.A.D;c.A.G(8(a){z(c.2k[a.H]==0){c.23=c.A.D;c.3p(a,1P);z(c.A.D-c.23==1){7 s=[a];1P.L(s)}}});7 1h=1;7 11={};1P.G(8(Y){7 V=1f();7 W=\'K\'+(1h++);Y.G(8(a){a.25=V;a.K=W});11[W]={\'V\':V,\'1B\':Y.D,\'26\':(Y.D/c.A.D)}});o 11;8 1f(){o C.S(X*C.T())+","+C.S(X*C.T())+","+C.S(X*C.T())}};22.10.3p=8(v,1P){7 c=E;7 2F=c.23;c.2k[v.H]=2F;c.23--;c.1O[v.H]=2F;7 2G=c.4u(v)||[];2G.G(8(w){7 3q=c.2k[w.H];7 3r=c.4v(v,w);z(3q==0){c.3n[w.H]=v.H;c.3o.L(3r);c.3p(w,1P);7 3s=c.1O[w.H]||0;z(3s<=2F){7 2H=[];7 e;5I{e=c.3o.5J();2H.L(e.O);2H.L(e.M)}1Q(e!=3r);1P.L(2H)}c.1O[v.H]=C.2I(3s,c.1O[v.H]||0)}1b z(w.H!=c.3n[v.H]){c.1O[v.H]=C.2I(3q,c.1O[v.H]||0)}})};22.10.4u=8(a){7 c=E;7 1m=[];7 1r=a.1r||[];1r.G(8(U){7 M=U.M;7 O=U.O;z(O.H!=M.H){7 1R=c.1g.2l(M.H);7 2J=c.1m[1R]||[];7 27=[];2J.G(8(n){27.L(n.H)});z(27.2l(a.H)==-1){1m.L(M)}}});o 1m};22.10.4v=8(O,4w){7 U;(O.1r||[]).G(8(3t){z(3t.M.H==4w.H){U=3t;o U}});o U};7 2K=8(A,I){E.A=A;E.I=I;E.1g=[];E.1m=[]};2K.10.24=8(){7 c=E;7 1S=[];c.A.G(8(a){1S.L(a);c.1g.L(a.H);7 4x=c.3u(a);c.1m.L(4x)});7 13=[];1Q(1S.D>0){7 K=[];7 3v=1S[0];1S.3w(0,1);K.L(3v);7 2m=[];2m.L(3v);1Q(2m.D>0){7 a=2m.3w(0,1)[0];7 2G=c.3u(a);2G.G(8(2L){7 1R=1S.2l(2L);z(1R!=-1){2m.L(2L);1S.3w(1R,1);K.L(2L)}})}13.L(K)}7 1h=1;7 11={};13.G(8(Y){7 V=1f();7 W=\'K\'+(1h++);Y.G(8(a){a.25=V;a.K=W});11[W]={\'V\':V,\'1B\':Y.D,\'26\':(Y.D/c.A.D)}});o 11;8 1f(){o C.S(X*C.T())+","+C.S(X*C.T())+","+C.S(X*C.T())}};2K.10.3u=8(a){7 28=E;7 1m=[];7 1r=a.1r||[];1r.G(8(U){7 M=U.M;7 O=U.O;z(O.H!=M.H){7 1R=28.1g.2l(M.H);7 2J=28.1m[1R]||[];7 27=[];2J.G(8(n){27.L(n.H)});z(27.2l(a.H)==-1){1m.L(M)}}});o 1m};7 2M=8(A,I){E.A=A;E.I=I};2M.10.24=8(){7 c=E;z(c.A.D==0){o}1n n=c.A.D;1n m=c.I.D;1n 2N=c.A;1n 29=1i 2O(n);1n 1H=1i 2O(n*n);1n 2n=1i 2O(n);1n 1c=1i 2O(n);7 K={};R(1j i=0;i1;--3z){1j 2Q=-4z;1j 1I;1j 1T;R(1j i=0;i2Q){2Q=3A;1T=i;1I=j}}}29[1T]+=29[1I]+1H[1T*n+1I];R(1j i=0;i3y){3y=q;R(1j i=0;i3J){3J=2p;2X=2Y}3I[2Y]=2p}}};8 4M(3K){z(3C===\'1K\')o 3K;z(3C===\'5K\')o!3K;o 1s};8 4J(N,1o,4N){7 a=3L(N);7 I=[];(a.1r||[]).G(8(4O){I.L(4O)});(a.4y||[]).G(8(4P){I.L(4P)});z(a&&I&&1k 1o===\'8\'){z(4N){o 4Q(I,N,1o)}1b{o 4R(I,N,1o)}}};8 3L(N){o 1V[N]};8 4R(I,N,1o){7 2b;R(7 i=0;i>>19))&2c;Z=((Z+5Q)+(Z<<5))&2c;Z=((Z+5R)^(Z<<9))&2c;Z=((Z+5S)+(Z<<3))&2c;Z=((Z^5T)^(Z>>>16))&2c;o(Z&5U)/5V};o{2q:8(4W){o C.S(3O()*4W)},5W:8(){o 3O()}}};8 4G(17,3P){7 2Z=3P||3F();z(1k 2Z.2q!==\'8\'){30 1i 5X(\'3P 5Y 5Z 61 62 63: 2q() 8 64 65\');}o{G:8(1o){7 i,j,t;R(i=17.D-1;i>0;--i){j=2Z.2q(i+1);t=17[j];17[j]=17[i];17[i]=t;1o(t)}z(17.D){1o(17[0])}},66:8(){7 i,j,t;R(i=17.D-1;i>0;--i){j=2Z.2q(i+1);t=17[j];17[j]=17[i];17[i]=t}o 17}}}}};7 3Q=8(A,I){E.A=A;E.I=I;E.1V={}};3Q.10.24=8(){7 c=E;7 4X=8(){7 4Y=-1;7 3R=0.67;7 31;7 3S;7 1W={};7 2r;7 2s={};7 1t=[];8 3T(17){7 3U={};17.G(8(d,i){3U[d]=1s});o 1X.1Y(3U)};8 3V(1p){7 3W=[];R(7 1d 1K 1p){z(1p.68(1d)){3W.L(1p[1d])}}o 3W};8 3X(F,a){7 2d=F.14[a]?1X.1Y(F.14[a]):[];7 P=0;2d.G(8(1q,i){7 1C=F.14[a][1q]||1;z(a===1q){1C*=2}P+=1C});o P};8 3Y(F,a){z(1k F.14[a]===\'1u\'){o[]}7 2d=1X.1Y(F.14[a]);o 2d};8 3Z(F,40,4Z){o F.14[40]?F.14[40][4Z]:1u};8 50(F){7 1B=0;F.1v.G(8(J){1B+=J.P});o 1B};8 51(F,J){52(F,J);z(2s[J.O+\'41\'+J.M]){F.1v[2s[J.O+\'41\'+J.M]].P=J.P}1b{F.1v.L(J);2s[J.O+\'41\'+J.M]=F.1v.D-1}};8 53(54){7 1M={};54.G(8(J,i){1M[J.O]=1M[J.O]||{};1M[J.O][J.M]=J.P;1M[J.M]=1M[J.M]||{};1M[J.M][J.O]=J.P});o 1M};8 52(F,J){F.14[J.O]=F.14[J.O]||{};F.14[J.O][J.M]=J.P;F.14[J.M]=F.14[J.M]||{};F.14[J.M][J.O]=J.P};8 1Z(1p){z(1p===1J||1k(1p)!==\'55\')o 1p;7 43=1p.69();R(7 1d 1K 1p){43[1d]=1Z(1p[1d])}o 43};8 32(F,B,20){B[\'1w\']={};B[\'33\']=0;B[\'1D\']={};B[\'1x\']={};B[\'2e\']={};B[\'2t\']={};B[\'33\']=50(F);z(1k 20===\'1u\'){F.A.G(8(a,i){B.1w[a]=i;7 21=3X(F,a);z(21<0)30\'56 F 57, 58 59 2f!\';B.1x[i]=21;B.2e[a]=21;B.2t[a]=3Z(F,a,a)||0;B.1D[i]=B.2t[a]})}1b{F.A.G(8(a,i){7 Q=20[a];B.1w[a]=Q;7 21=3X(F,a);B.1x[Q]=(B.1x[Q]||0)+21;B.2e[a]=21;7 34=0.0;7 2d=3Y(F,a);2d.G(8(1q,i){7 P=F.14[a][1q];z(P<=0){30"56 F 57, 58 59 2f";}z(20[1q]===Q){z(1q===a){34+=P}1b{34+=P/2.0}}});B.1D[Q]=(B.1D[Q]||0)+34})}};8 2g(B){7 I=B.33;7 35=0.0;7 1c=3T(3V(B.1w));1c.G(8(Q,i){7 5a=B.1D[Q]||0;7 5b=B.1x[Q]||0;z(I>0){35=35+5a/I-C.6a((5b/(2.0*I)),2)}});o 35};8 5c(a,F,B){7 2f={};7 5d=3Y(F,a);5d.G(8(1q,i){z(1q!==a){7 P=F.14[a][1q]||1;7 44=B.1w[1q];2f[44]=(2f[44]||0)+P}});o 2f};8 5e(a,Q,P,B){B.1w[a]=+Q;B.1x[Q]=(B.1x[Q]||0)+(B.2e[a]||0);B.1D[Q]=(B.1D[Q]||0)+P+(B.2t[a]||0)};8 5f(a,Q,P,B){B.1x[Q]=((B.1x[Q]||0)-(B.2e[a]||0));B.1D[Q]=((B.1D[Q]||0)-P-(B.2t[a]||0));B.1w[a]=-1};8 45(36){7 2u=0;7 1y=1Z(36);7 37={};7 5g=1X.1Y(36);5g.G(8(1d){7 1C=36[1d];7 38=1k 37[1C]===\'1u\'?-1:37[1C];z(38===-1){37[1C]=2u;38=2u;2u=2u+1}1y[1d]=38;1t.L([1Z(1y)])});o 1y};8 46(F,B){7 39=1s;7 47=0;7 3a=2g(B);7 1E=3a;1Q(39&&47!==4Y){3a=1E;39=2P;47+=1;F.A.G(8(a,i){7 2v=B.1w[a];7 5h=(B.2e[a]||0)/(B.33*2.0);7 2w=5c(a,F,B);5f(a,2v,(2w[2v]||0.0),B);7 2x=2v;7 48=0;7 5i=1X.1Y(2w);5i.G(8(Q,i){7 49=2w[Q]-(B.1x[Q]||0.0)*5h;z(49>48){48=49;2x=Q}});5e(a,2x,2w[2x]||0,B);z(2x!==2v){39=1s}});1E=2g(B);z(1E-3a<3R){18}}};8 4a(1a,F){7 1y={A:[],1v:[],14:{}};7 4b,P;7 5j=3V(1a);1y.A=1y.A.6b(3T(5j));F.1v.G(8(J,i){P=J.P||1;7 4c=1a[J.O];7 4d=1a[J.M];4b=(3Z(1y,4c,4d)||0);7 5k=(4b+P);51(1y,{\'O\':4c,\'M\':4d,\'P\':5k})});2s={};o 1y};8 3b(1F,5l){7 1a=1Z(1F[0]);R(7 i=1;i<5l+1;i++){1X.1Y(1a).G(8(1d,j){7 a=1d;7 Q=1a[1d];1a[a]=1F[i][Q]})}o 1a};8 4e(F,5m){z(F.1v.D===0){7 20={};F.A.G(8(a,i){20[a]=a});o 20}7 B={};32(1W,B,5m);7 3c=2g(B);7 2y=[];46(1W,B);7 1E=2g(B);7 1a=45(B.1w);2y.L(1a);3c=1E;7 2h=4a(1a,1W);32(2h,B);1Q(1s){46(2h,B);1E=2g(B);1t.L(1Z(2y));z(1E-3c<3R){18}1a=45(B.1w);2y.L(1a);3c=1E;2h=4a(1a,2h);32(2h,B)}o 2y};7 4f={};7 1z=8(){7 B={};7 1F=4e(1W,2r);4f=1F;o 3b(1F,1F.D-1)};7 1A=-1;1z.6c=8(){1A=-1;1t=[]};1z.5n=8(){z(1A==-1){7 1F=4e(1W,2r);4f=1Z(1F)}z(1A<1t.D){1A+=1;z(1t[1A]==1u){o 3b(1t[1A-1],1t[1A-1].D-1)}o 3b(1t[1A],1t[1A].D-1)}1b{o 1u}};1z.A=8(5o){z(4g.D>0){31=5o}o 1z};1z.1v=8(4h){z(1k 31===\'1u\')30\'6d 6e 6f F A 6g!\';z(4g.D>0){3S=4h;7 5p=53(4h);1W={\'A\':31,\'1v\':3S,\'14\':5p}}o 1z};1z.2r=8(5q){z(4g.D>0){2r=5q}o 1z};o 1z};8 1f(){o C.S(X*C.T())+","+C.S(X*C.T())+","+C.S(X*C.T())};7 4i=[],4j=[];c.A.G(8(a){4i.L(a.H);c.1V[a.H]=a});c.I.G(8(U){4j.L({O:U.O.H,M:U.M.H,P:U.P})});7 5r=4X().A(4i).1v(4j);7 2a=1s;7 2i,3d;1Q(2a){3d=5r.5n();z(3d==1u){2a=2P}1b{2i=3d}}1c={};1X.1Y(2i).G(8(k){z(2i[k]1K 1c){1c[2i[k]].L(k)}1b{1c[2i[k]]=[k]}});7 1h=1;7 11={};R(7 15 1K 1c){7 1L=1c[15]||[];7 V=1f();7 W=\'K\'+(1h++);1L.G(8(N){7 a=c.1V[N];a.25=V;a.K=W});11[W]={\'V\':V,\'1B\':1L.D,\'26\':(1L.D/c.A.D)}}o 11};7 1N=8(A){E.A=A;E.1e=[];E.2j=5;E.5s=[]};1N.10.24=8(4k){7 c=E;z(4k){E.2j=2z(4k[\'2j\']||5)}E.5t();E.4l();E.1e=E.5u();E.4l();7 13={};E.A.G(8(a){7 15=a.15;z(15>=0){7 Y=13[15];z(Y){Y.L(a)}1b{Y=[a]}13[15]=Y}});7 1h=1;7 11={};R(7 2R 1K 13){7 Y=13[2R];7 V=1f();7 W=\'K\'+(1h++);Y.G(8(a){a.25=V;a.K=W});11[W]={\'V\':V,\'1B\':Y.D,\'26\':(Y.D/c.A.D)}}o 11;8 1f(){o C.S(X*C.T())+","+C.S(X*C.T())+","+C.S(X*C.T())}};1N.10.5t=8(u,v){7 c=E;E.1e=[];E.2j=E.2j;E.5s=[];7 2A=2z.5v,4m=2z.5w,3e=2z.5v,3f=2z.5w;R(i=0;i0){7 3h=0;7 3i=0;7 1G=c.1e[j].1G;R(7 i=0;i<1G.D;i++){7 p=c.A[1G[i]];3h+=p.x;3i+=p.y}3h/=1G.D;3i/=1G.D;3g.L({x:3h,y:3i,15:j})}1b{3g.L(c.1e[j])}}o 3g};1N.10.4o=8(4p,4q){7 4r=4q.x-4p.x;7 4s=4q.y-4p.y;o 4r*4r+4s*4s};1N.10.6h=8(h,s,v){7 r,g,b;z(s===0){7 3j=C.3k(v);o 6i(3j,3j,3j)}z(h<0){h+=5B}h=h%5B;s=s/X;7 4t=C.S(h/60)%6;7 f=(h/60)-4t;7 p=C.3k(v*(1-s));7 q=C.3k(v*(1-f*s));7 t=C.3k(v*(1-(1-f)*s));5C(4t){1l 0:r=v;g=t;b=p;18;1l 1:r=q;g=v;b=p;18;1l 2:r=p;g=v;b=t;18;1l 3:r=p;g=q;b=v;18;1l 4:r=t;g=p;b=v;18;1l 5:r=v;g=p;b=q;18;5D:18}o r+\',\'+g+\',\'+b};7 3l=8(2C){z(!2C||2C==1J){o}E.F={A:2C.A||[],I:2C.I||[]}};3l.10.6j=8(2D){z(2D==1J){o}o E.5E(2D)};3l.10.5E=8(2D){7 28=E;7 A=28.F.A||[];7 I=28.F.I||[];7 K;5C(2D){1l\'6k\':K=1i 22(A,I);18;1l\'6l\':K=1i 2K(A,I);18;1l\'6m\':K=1i 2M(A,I);18;1l\'6n\':K=1i 3B(A,I);18;1l\'6o\':K=1i 3Q(A,I);18;1l\'6p\':K=1i 1N(A,I);18;5D:18}z(!K){o}o K};7 2E=3l;z(1k 5F!==\'1u\'&&1k 5G===\'55\'){5F.5G=2E}1b z(1k 3m===\'8\'&&(3m.6q||3m.6r)){3m(8(){o 2E})}1b{E.2E=2E}}).6s(E||(1k 5H!==\'1u\'?5H:6t));',62,402,'|||||||var|function||node||self||||||||||||return|||||||||||if|nodes|status|Math|length|this|graph|forEach|id|links|edge|cluster|push|target|nodeId|source|weight|com|for|floor|random|link|color|clusterKey|255|clusterNodes|seed|prototype|clusterResult||clusters|_assoc_mat|clusterId||array|break||partition|else|communities|key|centroids|randomColor|nodeIds|clusterNo|new|let|typeof|case|nodeNeighbers|const|callback|obj|neighbour|outLinks|true|status_listS|undefined|edges|nodes_to_com|degrees|ret|core|nextS|size|value|internals|new_mod|dendogram|bestMatches|nb|fromIndex|null|in|_nodeIds|mat|KMeansCluster|high|bicomponents|while|index|unvisitedNodes|toIndex|classMap|idMapNode|original_graph|Object|keys|clone|part|deg|BicomponentClusterer|converse_depth|applay|fillColor|rate|childNodeIds|_self|ck|runFlag|quitFast|0xffffffff|neighbours|gdegrees|weights|__modularity|current_graph|befor_community_result|numClusters|dfs_num|indexOf|queue|mask|createClusterMap|counter|next|partition_init|edge_index|loops|count|com_node|neigh_communities|best_com|status_list|Number|minX|bestMatch|_graph|clusterType|ClusterFactory|v_dfs_num|neighbors|bicomponent|max|childNodes|WeakCommpentClutser|neighbor|NewmanCluster|vertices|Array|false|deltaQMax|_clusterKey|step|getChangeRate|getIdMapNode|getClass|classChangesCount|maxClassName|otherNodeClass|localRandom|throw|original_graph_nodes|init_status|total_weight|inc|result|dict|new_values|new_value|modif|cur_mod|partition_at_level|mod|community_assignment_result|minY|maxY|newCentroids|ax|ay|val|round|ClusterFac|define|parents|stack|findBiconnectedComponents|w_dfs_num|vw|w_high|_link|initNodeNeighbers|root|splice|hasEdge|qMax|nc|deltaQ|ChineseWhisperCluster|kind|forEachCluster|changeRate|createRandom|iterator|newLevel|seenClasses|maxClassValue|isInLink|getNode|nodesInCluster|inputSeed|randomFunc|customRandom|LouvainCluster|__MIN|original_graph_edges|make_set|set|obj_values|vals|get_degree_for_node|get_neighbours_of_node|get_edge_weight|node1|_||temp|neighbourcom|__renumber|__one_level|nb_pass_done|best_increase|incr|induced_graph|w_prec|com1|com2|generate_dendogram|dendogramS|arguments|edgs|node_data|edge_data|config|clustering|maxX|bestMatchDist|getSquareDistance|p1|p2|dx|dy|hi|getNeighbors|findEdge|nodeB|neighbers|inLinks|Infinity|continue|createChineseWhisper|nodeMap|api|initInternalStructures|assignHighestClass|createRandomIterator|getHighestClassInTheNeighborhoodOf|currentLevel|forEachLinkedNode|visitNeighbour|otherNode|shouldUpdate|oriented|ol|il|forEachOrientedLink|forEachNonOrientedLink|linkedNodeId|_node|cb|reportToClient|maxValue|jLouvain|__PASS_MAX|node2|get_graph_size|add_edge_to_graph|update_assoc_mat|make_assoc_mat|edge_list|object|Bad|type|use|positive|in_degree|degree|__neighcom|neighboorhood|__insert|__remove|dict_keys|degc_totw|neigh_communities_entries|partition_values|new_weight|level|part_init|nextStep|nds|assoc_mat|prttn|community|colors|init|updateCentroids|MAX_VALUE|MIN_VALUE|min|width|abs|height|360|switch|default|getCluster|module|exports|window|do|pop|out|class|number|Date|0x7ed55d16|0xc761c23c|0x165667b1|0xd3a2646c|0xfd7046c5|0xb55a4f09|0xfffffff|0x10000000|nextDouble|Error|does|not||match|expected|API|is|missing|shuffle|0000001|hasOwnProperty|constructor|pow|concat|resetAll|Please|provide|the|first|hsv2rgb|styleRGB|createClutser|bicomponet|weakcommpent|newman|chinesewisper|louvain|kmeans|amd|cmd|call|global'.split('|'),0,{})); --------------------------------------------------------------------------------